求解菜单的问题

ZbDerek 2006-07-04 10:51:23
用ASP.NET开发了一个网站,其中用到了微软提供的菜单控件,但是在使用我们发现一个一级菜单不能包括3个有子节点的2级菜单,否则点击第3个有子节点的菜单系统没有反应,请问这个问题如何解决?不用第三方控件.

以下是动态创建菜单的原码:
public void CreateMenu(string MsId, MenuItem Nds)
{
DataView dv = new DataView();
string intId;
dv.Table = ds.Tables["MKstaffMenu"];
dv.RowFilter = "MasterMenuID=" + "'" + MsId + "'";

foreach (DataRowView drv in dv)
{
MenuItem tmpNd = new MenuItem(drv["menuname"].ToString(), drv["menu"].ToString());
Nds.ChildItems.Add(tmpNd);

intId = drv["MenuID"].ToString();
CreateMenu(intId, tmpNd);
}

}
//创建根节点
public void CreateMenu1()
{
DataView dv = new DataView();
dv.Table = ds.Tables["MKstaffMenu"];
dv.RowFilter = "MasterMenuID='0'";
foreach (DataRowView drv in dv)
{
MenuItem tmpNd = new MenuItem(drv["menuname"].ToString(), drv["menuid"].ToString());
tvMenu.Items.Add(tmpNd);
CreateMenu(drv["menuid"].ToString(), tmpNd);

}
}


以下是程序调用代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MenuClass MyMenu = new MenuClass();
MyMenu.CreateDataSet(Session["UserId"].ToString());
MyMenu.tvMenu = Menu1;
MyMenu.CreateMenu1();
}

}
...全文
203 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eddie005 2006-07-07
  • 打赏
  • 举报
回复
连一点反应都没有确实比较奇怪,至少应该刷新一下才是

不过偶在用munu控件时,也碰到过好几次莫名其妙的问题,对这个控件完全不信任,所以暂时不打算在项目中用它
ZbDerek 2006-07-04
  • 打赏
  • 举报
回复
可能是我没写清楚,上面的代码菜单都可以正常建立出来,问题就是第3个2级节点以下的所有子菜单,在点击时都没有响应.举个例子:
根1 根2
二级11 二级21
三级111 三级211
三级112 三级212
二级12 二级22
三级121
三级122
二级13
三级131
三级132
如:通过代码实现以上菜单,那么"三级131"和"三级132"这两个菜单项不执行点击事件,其它菜单项均正常执行点击事件.
如:将菜单构造成以下情况:
根1 根2
二级11 二级21
三级111 三级211
三级112 三级212
二级12 二级22
三级121 二级23
三级131 三级231
三级222
所有菜单项都能正常执行点击事件.


snowboy2003 2006-07-04
  • 打赏
  • 举报
回复
foreach (DataRowView drv in dv)
{
MenuItem tmpNd = new MenuItem(drv["menuname"].ToString(), drv["menu"].ToString());
CreateMenu(intId, tmpNd);
Nds.ChildItems.Add(tmpNd);

intId = drv["MenuID"].ToString();

}

试一下这样。
myminimouse 2006-07-04
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧