首先是数据表的设计
其中treeId指的是该菜单项的父ID,如果treeId为0.表示该菜单项为根菜单项,否则表示他为某菜单项的子菜单,比如id为2的项,他的父节点是1.则他是张三的子菜单,而张三是根菜单,position只用于根菜单项,用于控制显示的顺序。
往网页里拖入一个menu控件,然后添加代码
using
System;
System.Data;
System.Web;
System.Web.UI;
System.Web.UI.WebControls.WebParts;
System.Data.SqlClient;
public
partial
class
_Default :? System.Web.UI.Page
{
????
int
treeID;
protected
void
Page_Load(
object
sender,EventArgs e)
SqlConnection CN =
new
SqlConnection(
"server=.;Trusted_Connection=SSPI;database=MENUDB"
);?
//MENUDB是数据库名
????????
//设定数据库操作命令
SqlCommand Scmd =
SqlCommand(
"select * from TB_MENU where treeId=0 order by position"
,CN);
//选出根菜单
while
(odr.Read())?
//循环读取
????????????
MenuItem menuNode =
MenuItem();
"names"
].ToString();
menuNode.Value = odr[
"id"
true
;
menuNode.NavigateUrl = odr[
"page"
//添加到根菜单
treeID = Convert.ToInt16(odr[
].ToString());?
}
Scmd.Connection.Close();
addchildmenu(MenuItem pnode)?
//添加子菜单
);
CN.Open();
"select * from TB_MENU where treeID="
+ treeID +
""
(odr.Read())
//为当前菜单项添加子菜单
].ToString());
//循环添加子菜单
Scmd1.Connection.Close();
最终效果如下图
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!