asp.net动态生成TreeView

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class left : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       GetTreeView();
    }
    private void GetTreeView()
    {
        try
        {
            string connectionstring = "Server=(local);uid=sa;pwd=123456;database=web";//连接SQL数据库
            SqlConnection conn = new SqlConnection(connectionstring);
            string sql = "select * from menu where menu_level=1 and parent_id =0";//查询一级节点
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataSet ds1 = new DataSet();
            adapter.Fill(ds1, "temp");
            DataTable table1 = ds1.Tables["temp"];//把读取的数据放入DATATABLE中
            TreeView1.Nodes.Clear();//建立根节点,遍历。
            foreach (DataRow dr1 in table1.Rows)
            {
                TreeNode root = new TreeNode();
                root.Text = dr1["menu_name"].ToString();
                TreeView1.Nodes.Add(root);//建立根节点
                string sql2 = "select * from menu where menu_level=2 and parent_id='" + dr1["id"] + "'";
                SqlDataAdapter adapter2 = new SqlDataAdapter(sql2, conn);
                DataSet ds2 = new DataSet();
                adapter2.Fill(ds2, "temp2");
                DataTable table2 = ds2.Tables["temp2"]; //建立子节点,遍历。
                foreach (DataRow dr2 in table2.Rows)
                {
                    TreeNode Node = new TreeNode();
                    Node.Text = dr2["menu_name"].ToString();
                    Node.Target = "main";//目标窗口和框架,需要defult设置主框架名为MAIN
                    Node.NavigateUrl = "list.aspx?table_name=" + dr2["talbel_name"]+"&type_id="+dr2["type_id"];
                    root.ChildNodes.Add(Node);//建立子节点
                }

            }
            conn.Close();
        }
        catch (SqlException ex)
        {
            throw ex;
        }
        finally
        {
          Reseponse.Write("ok");
        }

    }
}

SQL脚本:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[menu]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[menu]
GO

CREATE TABLE [dbo].[menu] (
[id] [int] NOT NULL ,
[menu_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[menu_level] [int] NOT NULL ,
[parent_id] [int] NOT NULL ,
[talbel_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[type_id] [int] NOT NULL
) ON [PRIMARY]
GO

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值