递归绑定TreeView

        /// <summary>

        /// 数据库动态绑定TreeView

        /// 要求数据表最少有5个字段

        /// 第1个字段:ID

        /// 第2个字段:ParendID

        /// 第3个字段:文本

        /// 第4个字段:提示信息

        /// 第5个字段:要转向的链接

        /// </summary>

        /// <param name="tnd">TreeView.Nodes</param>

        /// <param name="sql">Select SQL</param>

        public static void Bind(TreeNodeCollection tns, string sql)

        {

            DataTable dt = DAL.DataSource.getDataTable(sql);

            tns.Clear();

            InitTree(tns, dt, 0);

            return;

        }





        /// <summary>

        /// 初使化树(递归绑定)

        /// </summary>

        /// <param name="tns">TreeView.Nodes</param>

        /// <param name="dt">DataTable</param>

        /// <param name="parentID">ParentID</param>

        private static void InitTree(TreeNodeCollection tns, DataTable dt, int parentID)

        {

            TreeNode tn;

            DataRow[] rows = null;

            try

            {

                rows = dt.Select("M_parentID=" + parentID);

                foreach (DataRow dr in rows)

                {

                    tn = new TreeNode();

                    tn.SelectAction = TreeNodeSelectAction.Expand;

                    tn.Value = dr["M_Id"].ToString();

                    tn.Text = dr["M_Title"].ToString();

                    if (dr["M_Show"].ToString() != null)

                    {

                        tn.ToolTip = dr["M_Show"].ToString();

                    }

                    if (dr["M_Url"].ToString() != null || dr["M_Url"].ToString() == "")//判断有没有URL

                    {

                        tn.NavigateUrl = dr["M_Url"].ToString();

                    }

                    if (dr["M_Target"].ToString() != null)//判断当前节点在哪里打开

                    {

                        tn.Target = dr["M_Target"].ToString();

                    }

                    else

                    {

                        tn.Target = "main";

                    }

                    if (dr["M_Collapse"].ToString() == "True")//判断是否折叠当前节点

                    {

                        tn.Collapse();

                    }

                    

                    tns.Add(tn);

                    InitTree(tn.ChildNodes, dt, Convert.ToInt32(tn.Value));

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

            return;



        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值