这个是自己写的一个TreeView绑定控件

这个是自己写的一个TreeView绑定控件,给你LOOKLOOK

  public class KTreeView : TreeView
    {
        #region
        private string _Field_ID;
        private string _Field_Name;
        private string _Field_ParentID;

        public string Field_ParentID
        {
            get { return _Field_ParentID; }
            set { _Field_ParentID = value; }
        }

        public string Field_Name
        {
            get { return _Field_Name; }
            set { _Field_Name = value; }
        }

        public string Field_ID
        {
            get { return _Field_ID; }
            set { _Field_ID = value; }
        }
        #endregion

        public void BindDataFromTable(DataTable _DataTable)
        {
            DataView KDataView = new DataView(_DataTable);
            KDataView.RowFilter = this.Field_ParentID + " is null";
            //KDataView.Sort = this.Field_ID.ToString();

            KTreeNode[] kTreeNodes = new KTreeNode[KDataView.Count];
           
            for (int i = 0; i < KDataView.Count; i++)
            {
                DataRowView row = KDataView[i];
                kTreeNodes[i] = new KTreeNode();
                kTreeNodes[i].TextField = row[this.Field_Name].ToString();
                kTreeNodes[i].ValueField = row[this.Field_ID].ToString();
                AddChildRows(kTreeNodes[i],KDataView);
            }

            this.BeginUpdate();
            this.Nodes.AddRange(kTreeNodes);
            this.EndUpdate();
        }

        private void AddChildRows(KTreeNode kTreeNode,DataView kDataView)
        {
            DataRow[] rows = kDataView.Table.Select(this.Field_ParentID + "= '" + kTreeNode.ValueField +"'");

            KTreeNode[] kTreeNodes = new KTreeNode[rows.Length];
            int i=0;
            foreach (DataRow row in rows)
            {
                kTreeNodes[i] = new KTreeNode();
                kTreeNodes[i].TextField = row[this.Field_Name].ToString();
                kTreeNodes[i].ValueField = row[this.Field_ID].ToString();
                AddChildRows(kTreeNodes[i], kDataView);
                i++;
            }
            kTreeNode.Nodes.AddRange(kTreeNodes);
        }

        public class KTreeNode : TreeNode
        {
            private string _TextField;
            private string _ValueField;

            public string ValueField
            {
                get { return _ValueField; }
                set { _ValueField = value; }
            }

            public string TextField
            {
                get { return _TextField; }
                set { this.Text = _TextField = value; }
            }
        }
    } 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值