• ASP.NET 读数据库绑定到 TreeView 递归方式


    创建表及插入模拟数据:

    CREATE TABLE [sysMenuTree](
    [NoteId] [decimal](18, 0) NOT NULL,
    [ParentId] [decimal](18, 0) NULL,
    [sText] [nvarchar](50) NULL,
    [sValue] [nvarchar](50) NULL,
    [sURL] [nvarchar](50) NULL,
    [sTarget] [nvarchar](50) NULL,
    [Chger] [nvarchar](50) NULL,
    [ChgTime] [nvarchar](50) NULL)
    
    insert into sysMenuTree values(3,0,N'目錄',N'目錄','','','','')
    insert into sysMenuTree values(4,0,N'目錄',N'目錄','','','','')
    insert into sysMenuTree values(5,0,N'目錄',N'目錄','','','','')
    insert into sysMenuTree values(6,3,N'項目.1',N'項目.1','','','','')
    insert into sysMenuTree values(7,3,N'項目.2',N'項目.2','','','','')
    insert into sysMenuTree values(8,4,N'項目.1',N'項目.1','','','','')
    insert into sysMenuTree values(9,4,N'項目.2',N'項目.2','','','','')
    insert into sysMenuTree values(10,4,N'項目.3',N'項目.3','','','','')
    insert into sysMenuTree values(11,5,N'項目.1',N'項目.1','','','','')
    insert into sysMenuTree values(12,5,N'項目.2',N'項目.2','','','','')
    
    在ASP.NET中读取数据绑定到TreeView实现代码:
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TreeView ID="treeMenu" runat="server">
            </asp:TreeView>
        </div>
        </form>
    </body>
    </html>
    
    using System;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    
    public partial class _Default : System.Web.UI.Page 
    {
        private readonly string ConnString = @"server=.\MSSQLSERVER2008;database=chart;uid=sa;pwd=123456";
        private DataTable dt = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                dt = new DataTable();
                GetMenuToDataTable("select * from sysMenuTree",dt);
                BindTree(dt,null,"0");
            }
        }
    
        private void BindTree(DataTable dtSource,TreeNode parentNode,string parentID)
        {
            DataRow[] rows = dtSource.Select(string.Format("ParentID={0}",parentID));
            foreach(DataRow row in rows)
            {
                TreeNode node = new TreeNode();
                node.Text = row["sText"].ToString();
                node.Value = row["sValue"].ToString();
                BindTree(dtSource,node,row["NoteId"].ToString());
                if(parentNode ==  null)
                {
                    treeMenu.Nodes.Add(node);
                }
                else
                {
                    parentNode.ChildNodes.Add(node);
                }
            }
        }
    
        private DataTable GetMenuToDataTable(string query,DataTable dt)
        {
            using(SqlConnection conn = new SqlConnection(ConnString))
            {
                SqlCommand cmd = new SqlCommand(query,conn);
                SqlDataAdapter ada = new SqlDataAdapter(cmd);
                ada.Fill(dt);
            }
            return dt;
        }
    }
    
  • 相关阅读:
    数据查询语言DQL 与 内置函数(聚合函数)
    数据操作语言DML与运算符
    解决Nginx重启时提示nginx: [emerg] bind() to 0.0.0.0:80错误
    Linux 重启nginx
    一群猴子排成一圈,按1,2,...,n依次编号
    阿里云云盾服务证书免费CA证书申请与配置 (原)
    Linux 配置文件
    php $_FILES上传失败 error返回值说明
    Ecshop 表结构 字段说明
    JS 笔记~
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/2016517.html
Copyright © 2020-2023  润新知