递归实现TreeView绑定表MenuTree

来源:互联网 发布:拉普拉斯变换公式矩阵 编辑:程序博客网 时间:2024/05/18 01:28
Web.config:
  <connectionStrings>
    <add name="treecnn" connectionString="data source=.;initial catalog=student;user id=sa;password=111111"/>
  </connectionStrings>

前台:
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TreeView ID="TreeView1" runat="server">
        </asp:TreeView>
    </div>
    </form>
< /body>

后台:
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                bindTree();
        }
        private void bindTree()
        {
            DataTable dt = this.GetTreeData();
            this.FillNode(dt, null);
        }
        private void FillNode(DataTable dt, TreeNode node)
        {
            DataView dv = new DataView(dt);
            if (node == null)   
            {
                dv.RowFilter = "parentid='0'"; 
            }
            else 
            {
                dv.RowFilter = "parentid='" + node.Value + "'";   
            }
            foreach (DataRowView drv in dv)   
            {
                TreeNode no = new TreeNode(drv["menuname"].ToString(), drv["menuid"].ToString());
                FillNode(dt, no);  
                if (node == null)
                {
                    this.TreeView1.Nodes.Add(no);
                }
                else
                {
                    node.ChildNodes.Add(no);
                }
            }
        }
        private DataTable GetTreeData()
        {
            string strcnn = ConfigurationManager.ConnectionStrings["treecnn"].ConnectionString;
            using (SqlConnection sqlcnn = new SqlConnection(strcnn))
            {
                SqlCommand sqlcmm = sqlcnn.CreateCommand();
                sqlcmm.CommandText = "select * from MenuTree order by parentid,menuorder";
                SqlDataAdapter da = new SqlDataAdapter(sqlcmm);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds.Tables[0];
            }
        }
原创粉丝点击