• DevExpress之Treelist应用


            /// <summary>
            /// 设置节点状态
            /// </summary>
            /// <param name="nodes">TreeListNodes</param>
            /// <param name="bcheck">是否选中</param>
            private void NodeCheck(TreeListNodes nodes, bool bcheck)
            {
                foreach (TreeListNode node in nodes)
                {
                    node.Checked = bcheck;
                    if (node.HasChildren)
                    {
                        NodeCheck(node.Nodes, bcheck);
                    }
                }
            }

    动态生成节点

                var onevalue = new object[] { "0", "0", "0" };
                DevExpress.XtraTreeList.Nodes.TreeListNode oneNode = treeList1.AppendNode(onevalue, null);//添加一级节点
    
                for (int i = 1; i < 5; i++)
                {
                    var teovalue = new object[] { i.ToString(), i.ToString(), i.ToString() };
    
                    this.treeList1.AppendNode(teovalue, oneNode);
    
                }
    
                for (int i = 10; i < 15; i++)
                {
                    for (int j = 0; j < treeList1.Nodes[0].Nodes.Count; j++)
                    {
                        if (treeList1.Nodes[0].Nodes[j].GetValue("treeListColumn1").ToString() == "2")
                        {
                            var trridvalue = new object[] { (i * 10).ToString(), (i * 10).ToString(), (i * 10).ToString() };
                            this.treeList1.AppendNode(trridvalue, treeList1.Nodes[0].Nodes[j]);
                        }
                    }
                }
    
                for (int i = 16; i < 20; i++)
                {
                    for (int j = 0; j < treeList1.Nodes[0].Nodes.Count; j++)
                    {
                        if (treeList1.Nodes[0].Nodes[j].GetValue("treeListColumn1").ToString() == "3")
                        {
                            var trridvalue = new object[] { (i * 10).ToString(), (i * 10).ToString(), (i * 10).ToString() };
                            this.treeList1.AppendNode(trridvalue, treeList1.Nodes[0].Nodes[j]);
                        }
                    }
                }
            /// <summary>
            /// 根据列名和值查找节点
            /// </summary>
            /// <param name="nodes"></param>
            /// <param name="colname"></param>
            /// <param name="colvalue"></param>
            /// <returns></returns>
            private TreeListNode GetNodeByCol(TreeListNodes nodes, string colname, string colvalue)
            {
                foreach (TreeListNode node in nodes)
                {
                    string svalue = node.GetValue(colname).ToString();
                    if (svalue == colvalue)
                    {
                        return node;
                    }
                    if (node.HasChildren)
                    {
                        GetNodeByCol(node.Nodes, colname, colvalue);
                    }
                }
                return null;
            }
  • 相关阅读:
    算法
    autoreleasepool和weak
    记录一下锁如何使用
    RunLoop相关知识
    NSTimer内存泄漏的解决方案
    ARC下block循环引用的解决方式
    MGJRouter源码解析及使用方法
    Instruments 中Time Profile的使用
    NSFileManager的基本使用
    Runtime相关知识
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/11950944.html
Copyright © 2020-2023  润新知