/// <summary>
 /// 
 /// </summary>
 /// <param name="nodename"></param>
 /// <param name="nc"></param>
 protected bool NodesExpand(string nodename, TreeViewNodeCollection nc)
 {
     bool isexist = false;
     foreach (TreeViewNode tvn in nc)
     {
         if (tvn.Name != nodename)
         {
             if (tvn.Nodes.Count > 0)
             {
                 isexist = NodesExpand(nodename, tvn.Nodes);
                 if(isexist)
                 {
                     //tvn.Parent.Expanded = true;
                     return true;
                 }
             }
         }
         else
         {
             tvn.TreeView.ExpandToNode(tvn);
             return true;
         }
     }
     return isexist;
 }
 private bool ExpandToSelection(SfTreeView tree, TreeViewNodeCollection nodes, object model)
 {
     foreach (var node in nodes)
     {
         if ((node.Content as FileManager).ItemName == (model as FileManager).ItemName)
         {
             var parent = node.ParentNode;
             while (parent != null)
             {
                 tree.ExpandNode(parent);
                 parent = parent.ParentNode;
             }
             return(true);
         }
     }
     foreach (var node in nodes)
     {
         if (node.HasChildNodes)
         {
             var found = ExpandToSelection(tree, node.ChildNodes, model);
             if (found)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #3
0
        private void AddTrainCourseBook(TreeViewNodeCollection tvNodes)
        {
            ArrayList objList = GetChapterList();

            foreach (TreeViewNode node in tvNodes)
            {
                if (node.Checked == true)
                {
                    if (objList.IndexOf(node.ID) == -1)
                    {
                        TrainCourseBookBLL             trainCourseBookBLL = new TrainCourseBookBLL();
                        RailExam.Model.TrainCourseBook trainCourseBook    = new RailExam.Model.TrainCourseBook();

                        if (node.ParentNode == null)
                        {
                            trainCourseBook.ChapterID = string.Empty;
                        }
                        else
                        {
                            trainCourseBook.ChapterID = node.ID;
                        }
                        trainCourseBook.CourseID = Convert.ToInt32(ViewState["CourseID"].ToString());
                        trainCourseBook.BookID   = Convert.ToInt32(node.Value);

                        trainCourseBookBLL.AddTrainCourseBook(trainCourseBook);
                    }
                }

                if (node.Nodes.Count > 0)
                {
                    AddTrainCourseBook(node.Nodes);
                }
            }
        }
コード例 #4
0
        private void DelTrainCourseBook(TreeViewNodeCollection tvNodes)
        {
            foreach (TreeViewNode node in tvNodes)
            {
                if (node.Checked == true)
                {
                    TrainCourseBookBLL obj = new TrainCourseBookBLL();
                    int n = 0;
                    foreach (TreeViewNode node1 in node.Nodes)
                    {
                        if (node1.Checked == true)
                        {
                            n = n + 1;
                        }
                    }

                    if (n != node.Nodes.Count)
                    {
                        Response.Write("<script>alert('要移除已选教材章节的父节点时必须选中其所有子节点!');</script>");
                        return;
                    }
                    else
                    {
                        obj.DeleteTrainCourseBook(Convert.ToInt32(node.ID));
                    }
                    obj.DeleteTrainCourseBook(Convert.ToInt32(node.ID));
                }

                if (node.Nodes.Count > 0)
                {
                    DelTrainCourseBook(node.Nodes);
                }
            }
        }
コード例 #5
0
        private void IsDel(TreeViewNodeCollection tvNodes)
        {
            int n = 0;

            foreach (TreeViewNode node in tvNodes)
            {
                if (node.Checked == false)
                {
                    n = n + 1;
                }

                if (n == 0)
                {
                    if (node.Nodes.Count > 0)
                    {
                        IsDel(node.Nodes);
                    }
                }
                else
                {
                    Response.Write("<script>alert('要移除已选教材章节的父节点时必须选中其所有子节点!');</script>");
                    return;
                }
            }
        }
コード例 #6
0
        private void AddTrainCourseCourseware(TreeViewNodeCollection tvNodes)
        {
            ArrayList objList = GetCourseWareList();

            foreach (TreeViewNode node in tvNodes)
            {
                if (node.ShowCheckBox == true)
                {
                    if (node.Checked == true)
                    {
                        if (objList.IndexOf(node.Value) == -1)
                        {
                            TrainCourseCoursewareBLL obj = new TrainCourseCoursewareBLL();
                            TrainCourseCourseware    objTrainCourseCourseware = new TrainCourseCourseware();

                            objTrainCourseCourseware.CourseID     = Convert.ToInt32(ViewState["CourseID"].ToString());
                            objTrainCourseCourseware.CoursewareID = Convert.ToInt32(node.Value);

                            obj.AddTrainCourseCourseware(objTrainCourseCourseware);
                        }
                    }
                }

                if (node.Nodes.Count > 0)
                {
                    AddTrainCourseCourseware(node.Nodes);
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// 创建兼容 TreeViewNodeCollection 的对象(List作为参数)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="keyGet"></param>
        /// <param name="parentKeyGet"></param>
        /// <param name="destroyData"></param>
        /// <returns></returns>
        public static TreeViewNodeCollection CreateTVNodeCollectionDX <T>(
            List <T> data, Func <T, string> keyGet, Func <T, string> parentKeyGet,
            Action <TreeViewNode, T> nodeSet, int dept = -1, bool destroyData = false)
        {
            TreeViewNodeCollection tc = new TreeViewNodeCollection();

            if (data.Count == 0)
            {
                return(tc);
            }
            List <T> lstCopy = data;

            if (!destroyData)
            {
                lstCopy = data.ToList();               // 做多一个拷贝
            }
            // 采用递归方式执行节点创建
            Action <List <T>, int, string, TreeViewNodeCollection> _do = (all, dpt, parentId, parentCollection) => { };

            _do = (all, dpt, parentId, parentCollection) =>
            {
                Func <T, bool> _where = t => parentKeyGet(t) == parentId;
                if (string.IsNullOrEmpty(parentId))
                {
                    _where = t => string.IsNullOrEmpty(parentKeyGet(t));
                }
                List <T> children = all.Where(_where).ToList();
                children.ForEach(c => all.Remove(c));
                children.ForEach(c =>
                {
                    TreeViewNode node = new TreeViewNode()
                    {
                        Name = keyGet(c)
                    };
                    nodeSet(node, c);
                    if (parentCollection != null)
                    {
                        parentCollection.Add(node);
                    }
                    if (dpt < dept || dept == -1)
                    {
                        _do(all, (dpt == -1) ? dpt : dpt + 1, node.Name, node.Nodes);
                    }
                });
            };

            // 执行递归,并返回结果
            // 最高层的字段值为 null 或者 空字符串
            _do(lstCopy, 0, null, tc);
            if (tc.Count == 0)
            {
                _do(lstCopy, 0, "-1", tc);                // 没获得树,则用 "-1" 试试
            }
            return(tc);
        }
 protected void ProcessSeparatorNodes(TreeViewNodeCollection nodes, ref int seperatorIndex)
 {
     foreach (TreeViewNode node in nodes)
     {
         if (node.NodeStyle.CssClass == "sp")
         {
             node.Name = "sp" + seperatorIndex++;
         }
         ProcessSeparatorNodes(node.Nodes, ref seperatorIndex);
     }
 }
コード例 #9
0
 public static bool Contains(this TreeViewNodeCollection collection, string value)
 {
     foreach (TreeViewNode node in collection)
     {
         if (node.Value == value)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #10
0
 private static void PerformActionOnNodesRecursive(TreeViewNodeCollection nodes, Action <TreeViewNode> action)
 {
     foreach (TreeViewNode node in nodes)
     {
         action(node);
         if (node.Nodes.Count > 0)
         {
             PerformActionOnNodesRecursive(node.Nodes, action);
         }
     }
 }
コード例 #11
0
        private void ShowCheckBox(TreeViewNodeCollection nodes)
        {
            foreach (TreeViewNode node in nodes)
            {
                node.ShowCheckBox = true;

                if (node.Nodes.Count > 0)
                {
                    ShowCheckBox(node.Nodes);
                }
            }
        }
コード例 #12
0
 private void CreateTreeViewNodesRecursive(DataTable table, TreeViewNodeCollection nodesCollection, string parentID)
 {
     for (int i = 0; i < table.Rows.Count; i++)
     {
         if (table.Rows[i]["ParentID"].ToString() == parentID)
         {
             TreeViewNode node = new TreeViewNode(table.Rows[i]["Title"].ToString(), table.Rows[i]["ID"].ToString());
             nodesCollection.Add(node);
             CreateTreeViewNodesRecursive(table, node.Nodes, node.Name);
         }
     }
 }
コード例 #13
0
 //递归赋值已选项
 private void SetTreeNodeSelected(string ids, TreeViewNodeCollection tvNodes)
 {
     foreach (TreeViewNode node in tvNodes)
     {
         if (node.Nodes.Count > 0)
         {
             SetTreeNodeSelected(ids, node.Nodes);
         }
         else
         {
             node.Checked = ids.Contains(node.Value);
         }
     }
 }
コード例 #14
0
        private void GetIDS(TreeViewNodeCollection nodes, ref string strIDS)
        {
            foreach (TreeViewNode node in nodes)
            {
                if (node.Checked)
                {
                    strIDS += node.ID + ",";
                }

                if (node.Nodes.Count > 0)
                {
                    GetIDS(node.Nodes, ref strIDS);
                }
            }
        }
コード例 #15
0
 public void ChangeNodeColor(TreeViewNodeCollection nodes)
 {
     foreach (TreeViewNode node in nodes)
     {
         if (node.Value == typeId)
         {
             node.TextColor = Color.Red;
             return;
         }
         if (node.Nodes.Count > 0)
         {
             ChangeNodeColor(node.Nodes);
         }
     }
 }
コード例 #16
0
        private ArrayList GetOrg(TreeViewNodeCollection nodes, ArrayList al)
        {
            foreach (TreeViewNode tn in nodes)
            {
                if (tn.Checked)
                {
                    al.Add(tn.ID);
                }

                if (tn.Nodes.Count > 0)
                {
                    GetOrg(tn.Nodes, al);
                }
            }
            return(al);
        }
コード例 #17
0
 private void DelTrainCourseCourseware(TreeViewNodeCollection tvNodes)
 {
     foreach (TreeViewNode node in tvNodes)
     {
         if (node.ShowCheckBox == true)
         {
             if (node.Checked == true)
             {
                 TrainCourseCoursewareBLL obj = new TrainCourseCoursewareBLL();
                 obj.DeleteTrainCourseCourseware(Convert.ToInt32(node.Value));
             }
         }
         if (node.Nodes.Count > 0)
         {
             DelTrainCourseCourseware(node.Nodes);
         }
     }
 }
 protected TreeViewNode FindTextInNodesRecursive(string text, TreeViewNodeCollection nodes)
 {
     foreach (TreeViewNode node in nodes)
     {
         if (node.Text.ToLower().Contains(text))
         {
             return(node);
         }
         if (node.Nodes.Count > 0)
         {
             TreeViewNode foundNode = FindTextInNodesRecursive(text, node.Nodes);
             if (foundNode != null)
             {
                 return(foundNode);
             }
         }
     }
     return(null);
 }
コード例 #19
0
        private string NodeToSource(TreeViewNodeCollection treeViewNodeCollection)
        {
            var startSourceCode  = string.Empty;
            var ChildsSourceCode = string.Empty;
            var finishSourceCode = string.Empty;

            foreach (TreeViewNode treeViewNode in treeViewNodeCollection)
            {
                var curCncptExprsn =
                    BConceptExpression.GetByID(Convert.ToDecimal(treeViewNode.Value));

                startSourceCode = curCncptExprsn.ScriptBeginEn;
                if (treeViewNode.Nodes != null &&
                    treeViewNode.Nodes.Count > 1)
                {
                    ChildsSourceCode = NodeToSource(treeViewNode.Nodes);
                }
                finishSourceCode = curCncptExprsn.ScriptEndEn;
            }

            return(string.Format("{0}{2}{3}", startSourceCode, ChildsSourceCode, finishSourceCode));
        }
コード例 #20
0
        private void Bind(TreeViewNodeCollection tvnNodes)
        {
            foreach (TreeViewNode node in tvnNodes)
            {
                if (node.Nodes.Count == 0)
                {
                    BookBLL objBll = new BookBLL();
                    IList <RailExam.Model.Book> objList = objBll.GetBookByKnowledgeIDPath(node.Value);

                    foreach (RailExam.Model.Book book in objList)
                    {
                        TreeViewNode item = new TreeViewNode();
                        item.ID      = book.bookId.ToString();
                        item.Value   = book.bookId.ToString();
                        item.Text    = book.bookName;
                        item.ToolTip = book.bookName;
                        item.Attributes.Add("isBook", "true");
                        item.ImageUrl = "~/App_Themes/" + StyleSheetTheme + "/Images/TreeView/Book.gif";

                        try
                        {
                            tvBookChapter.FindNodeById(node.ID).Nodes.Add(item);
                        }
                        catch
                        {
                            tvBookChapter.Nodes.Clear();
                            SessionSet.PageMessage = "Êý¾Ý´íÎó£¡";
                            return;
                        }
                    }
                }
                else
                {
                    Bind(node.Nodes);
                }
            }
        }
コード例 #21
0
 protected void ddlAccount_SelectedIndexChanged(object sender, EventArgs e)
 {
     TreeViewNodes = null;
     showAllPortfolio();
 }
コード例 #22
0
        protected void odsPortfolioComponents_Selected(object sender, ObjectDataSourceStatusEventArgs e)
        {
            DataTable dataTable = ((DataSet)e.ReturnValue).Tables[0];

            if (TreeViewNodes == null)
            {
                TreeViewNodes = (new TreeViewNodeCollection(dataTable.Rows.Cast<DataRow>()
                                                                     .Select(row => new TreeViewNode((int)row["LineNumber"],
                                                                                                     (int)row["ParentLineNumber"]))))
                                    .ExpandToDepth(1);
            }

            int[] invisibleNodeKeys = TreeViewNodes.Where(node => !node.Visible)
                                                   .Select(node => node.NodeKey).ToArray();
            DataRow[] invisibleRows = dataTable.Rows.Cast<DataRow>()
                                               .Where(row => invisibleNodeKeys.Contains((int)row["LineNumber"])).ToArray();
            foreach (DataRow row in invisibleRows)
                dataTable.Rows.Remove(row);
        }
コード例 #23
0
        void TreeViewNodeSelected(TreeViewNodeCollection tvCollection, StringCollection rightCollection)
        {
            if (tvCollection != null && rightCollection != null && rightCollection.Count > 0)
            {
                foreach (TreeViewNode node in tvCollection)
                {
                    foreach (string rid in rightCollection)
                    {
                        if (node.Value.EndsWith(rid))
                        {
                            node.Checked = true;
                            break;
                        }
                    }

                    if (node.Childs.Count > 0)
                        this.TreeViewNodeSelected(node.Childs, rightCollection);
                }
            }
        }