Asp.net中动态Menu的实践
来源:互联网 发布:大连锐鑫软件 编辑:程序博客网 时间:2024/05/16 15:48
1、在页界中添加MENU控件;
<asp:Menu ID="Menu1" runat="server" StaticSubMenuIndent="10px" Orientation="Horizontal">
Orientation="Horizontal" //保证菜单为水平排列
2、在数据库中建立Menu表,以便存放Menu信息
create table menu(id int primary key identity(1,1), //主键pid int, //pid为0为菜单的一级,子菜单的pid应该是所对应的父菜单的idtxt nvarchar(50), //菜单名称mtarget nvarchar(50), //菜单点击后对应的窗体,可以为"_self","_bland"或指定frame或iframe的名称url nvarchar(200))
3、页面所对应的程序
<pre class="csharp" name="code">using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;public partial class Content : System.Web.UI.Page{ protected static int ParentID = 0; protected void Page_Load(object sender, EventArgs e) { Label1.Text = Session["Username"].ToString(); if(!Page.IsPostBack) { DataRow[] rows = DSMenu.Tables[0].Select("pid="+ParentID); if (rows.Length > 0) { for (int i = 0; i < rows.Length; i++) { MenuItem pNode = new MenuItem(); pNode.Value = rows[i]["id"].ToString(); pNode.Text = rows[i]["txt"].ToString(); pNode.NavigateUrl = rows[i]["url"].ToString(); pNode.Enabled = true; pNode.Target = rows[i]["mtarget"].ToString(); Menu1.Items.Add(pNode); int pid = Convert.ToInt32(rows[i]["id"]); this.FillMenu(pNode, pid); } } } } protected DataSet _dsmenu = null; protected DataSet DSMenu { get { if (_dsmenu == null) { Db MenuC = new Db(); MenuC.DbOpen(); SqlCommand Cmd = new SqlCommand("SELECT * FROM MENU ", MenuC.cOn); SqlDataAdapter da = new SqlDataAdapter(Cmd); DataSet ds = new DataSet(); da.Fill(ds); MenuC.DbClose(); _dsmenu = ds; } return _dsmenu; } } protected void FillMenu(MenuItem pNode,int pid) { DataRow[] rows = DSMenu.Tables[0].Select("pid="+pid+""); if (rows.Length > 0) { for (int i = 0; i < rows.Length; i++) { MenuItem cNode = new MenuItem(); cNode.Value = rows[i]["id"].ToString(); cNode.Text = rows[i]["txt"].ToString(); cNode.NavigateUrl = rows[i]["url"].ToString(); cNode.Enabled = true; cNode.Target = rows[i]["mtarget"].ToString(); pNode.ChildItems.Add(cNode); pid = Convert.ToInt32(rows[i]["id"]); FillMenu(cNode, pid); } } }}
效果
数据库设置
菜单效果
0 0
- Asp.net中动态Menu的实践
- asp.net中menu控件的使用
- ASP.NET 4.0 中 Menu 控件的改进
- asp.net 4.0中menu菜单的改进
- Asp.Net C#程序代码动态添加asp:Menu节点
- ASP.Net中menu控件使用
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu)
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接
- UVA489水题
- linux环境下django开发环境的搭建
- File Inclusion -low
- OC点语法和变量作用域
- Asp.net中动态Menu的实践
- Eclipse上修改Jython代码的Comment颜色
- 天气API-----开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- Ubuntu 两台电脑用网线搭建一个局域网(学习笔记)
- C++ STL中顺序容器类型以及实现原理
- 剑指offer中替换空格为"%20"
- 一个非常好用的visual studio 代码对齐插件 Code alignment
- Stock Wave+csuoj+简单dp
- Android实现ListView异步加载图片