TreeView控件绑定数据库

1.在设计视图里面的代码

    <form id="form1" runat="server">

    <div>

        <h1>两个表</h1>

        <asp:TreeView ID="TreeView1" runat="server">

           <HoverNodeStyle Font-Underline="true" ForeColor="Window" />

            <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px"/>

             <ParentNodeStyle Font-Bold="False" />

             <SelectedNodeStyle BackColor="Red" Font-Underline="False" HorizontalPadding="0px" VerticalPadding="0px" />

        </asp:TreeView>

        <br />

        <asp:Button ID="Button1" runat="server" Text="ShowTwoTable" OnClick="Button1_Click"/>

        <br /><br /><hr />

        <h1>一个表</h1>

        <asp:TreeView ID="TreeView2" runat="server"></asp:TreeView>

        <br />

        <asp:Button ID="Button2" runat="server" Text="ShowOne" OnClick ="Button2_Click" />

    </div>

    </form>

2.后台代码:
两个关联表的显示

#region 两个表的显示

        //根据获取的数据填充TreeView控件

        private void PopulateTreeView(DataTable dtParent, int parentId, TreeNode treeNode)

        {

            foreach (DataRow row in dtParent.Rows)

            {

                TreeNode child = new TreeNode

                {

                    Text = row["Name"].ToString(),

                    Value = row["Id"].ToString()

                };

                if (parentId == 0)

                {

                    TreeView1.Nodes.Add(child);

                    DataTable dtChild = this.GetDataTableBySql("select Id,Name from VehicleSubType where VehicleId= " + child.Value);

                    PopulateTreeView(dtChild, int.Parse(child.Value), child);

                }

                else

                {

                    treeNode.ChildNodes.Add(child);

                }

            }

        }





        //根据sql语句从数据库中获取整个表的数据

        private DataTable GetDataTableBySql(string sql)

        {

            DataTable dt = new DataTable();

            string constr = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

            using (SqlConnection con = new SqlConnection(constr))

            {

                using (SqlCommand cmd = new SqlCommand(sql))

                {

                    using (SqlDataAdapter sda = new SqlDataAdapter())

                    {

                        cmd.CommandType = CommandType.Text;

                        cmd.Connection = con;

                        sda.SelectCommand = cmd;

                        sda.Fill(dt);

                    }

                }

                return dt;

            }

        }



        protected void Button1_Click(object sender, EventArgs e)

        {

                DataTable dt = this.GetDataTableBySql("select Id, Name  from VechicleType ");

                this.PopulateTreeView(dt, 0, null);

        }

        #endregion
View Code


一个表的显示:

#region 一个表的显示

        protected void Button2_Click(object sender, EventArgs e)

        {

            PopulateMenu();

        }

        //use the linq to sql 

        MynodeDataContext db = new MynodeDataContext();

        private void PopulateMenu()

        {

            List<NodeSubNode> allMenu = new List<NodeSubNode>();

            allMenu = db.NodeSubNodes.ToList();

            CreateTreeView(allMenu, 0, null);

        }

     

        private void CreateTreeView(List<NodeSubNode> source, int parentID, TreeNode parentNode)

        {

            List<NodeSubNode> newSource = db.NodeSubNodes.Where(a => a.SubjectId.Equals(parentID)).ToList();

            foreach (var i in newSource)

            {

                TreeNode newnode = new TreeNode(i.Name, i.Id.ToString());

                if (parentNode == null)

                {

                    TreeView2.Nodes.Add(newnode);

                }

                else

                {

                    parentNode.ChildNodes.Add(newnode);

                }

                CreateTreeView(source, i.Id, newnode);

            }

        }

        #endregion
View Code


显示效果:TreeView控件绑定数据库

 

 

More information:

http://dotnetawesome.blogspot.com/2013/11/how-to-bind-treeview-from-database.html

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/navigation/treeview.aspx

 

你可能感兴趣的:(treeview)