现在的位置: 首页 > 综合 > 正文

递归绑定TreeView

2014年01月02日 ⁄ 综合 ⁄ 共 1254字 ⁄ 字号 评论关闭
        /// <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;



        }

抱歉!评论已关闭.