• 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


    显示效果:

    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

  • 相关阅读:
    构造函数和属性初始化
    C#3.0新增功能06 对象和集合初始值设定项
    C#动态操作DataTable(新增行、列、查询行、列等)
    快速排序
    HTML5原生拖放实例分析
    从web移动端布局到react native布局
    Chrome浏览器Network面板http请求时间分析
    CSS3之3D变换实例详解
    移动端行列布局
    SVG描边动画原理
  • 原文地址:https://www.cnblogs.com/songxia/p/3977662.html
Copyright © 2020-2023  润新知