ASP.NET 树形菜单目录设计

目录结构存储在数据库中,表结构如下:

id 节点id号

name 节点名称

parentid 节点的父节点id号

navigateurl  节点指向的url地址

 

代码如下:

设计一个  MenuTree类

1.添加System.Web.UI.WebControls的引用

public class MenuTree
    {
        private TreeView tv;

        private DataSet GetData()
        {
            SqlConnection conn = new SqlConnection(“connection string”)
            string str = "select * from menu";
            SqlDataAdapter sda = new SqlDataAdapter(str, conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            if(conn != null)
            {
                conn.Close();
                conn.Dispose();
            }
            return ds;
        }

       public void BindTv(TreeView TreeView1)
        {
            tv = TreeView1;
            AddTree(0, (TreeNode)null);
        }

        private void AddTree(int parentId,TreeNode pnode)
        {
            DataSet ds = GetData();
            DataView dv = new DataView(ds.Tables[0]);
            dv.RowFilter = "[parentid]=" + parentId;
            foreach (DataRowView Row in dv)
            {
                TreeNode node = new TreeNode();
                if (pnode == null)
                {
                    node.Text = Row["name"].ToString();
                    tv.Nodes.Add(node);
                    node.Expanded = true;
                    AddTree(Int32.Parse(Row["id"].ToString()),node); //递归方法
                }
                else
                {
                    node.Text = Row["name"].ToString();
                    pnode.ChildNodes.Add(node);
                    node.Expanded = true;
                    AddTree(Int32.Parse(Row["id"].ToString()), node); //递归方法
                }
            }

        }
    }

 

在前台页面中添加如下代码

protected void Page_Load(object sender, EventArgs e)
      {
          MenuTree mt = new MenuTree();
          mt.BindTv(TreeView1);
      }


以上代码测试可行。


补充:将数据库的连接信息放到web.config文件中

web.config

  <connectionStrings>
    <add name="MenuDB" connectionString ="Data Source=localhost;Initial Catalog=Study;User ID=sa;Password=fangtou"/>
  </connectionStrings>

MenuTree.cs

 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MenuDb"].ConnectionString);

(使用ConfigurationManager类,需要引用System.Configuration)

转载于:https://www.cnblogs.com/wjonjon/archive/2009/09/17/1568496.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值