递归生成菜单问题。

WY刘文 2016-05-03 09:01:01
WPF下递归调用数据生成菜单MENUITEM,只能生成顶层菜单项。请帮看看问题出在哪里?谢谢!!
递归函数
public void LoadSubMenu(MenuItem topMenu, int MtID)
{
try
{
DataView dvList = new DataView(allMenu);
dvList.RowFilter = "parentid=" + MtID.ToString();
MenuItem subMenu;
//if (dvList.Count > 0)
//{
foreach (DataRowView dv in dvList)
{
//创建子菜单项
subMenu = new MenuItem();
subMenu.Name = dv["menu_name"].ToString();
subMenu.Header = dv["MENU_HEADER"].ToString();
//判断是否为顶级菜单
if (MtID == 0)
{
this.menu_Main.Items.Add(subMenu);
}
else
{
topMenu.Items.Add(subMenu);
}
//递归调用
LoadSubMenu(subMenu, Convert.ToInt32(dv["menuid"]));
}
//}
}
catch (Exception er)
{
throw new Exception(er.Message);
}

}
在一个BUTTON的单事件中调用
MenuOperate moc = new MenuOperate();
allMenu = moc.Sel_Menu();//此为局部变量类型为DataTable
LoadSubMenu(null,0);//

表结构(无父项项PARENTID为0)
MENUID(菜单项编号) MENU_HEADER(菜单项显示文本) PARENTID(父项编号)
...全文
284 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin-Liu 2016-05-04
  • 打赏
  • 举报
回复
没有递归进去吧 debug一下
为轮子而生 2016-05-04
  • 打赏
  • 举报
回复
LoadSubMenu(subMenu, Convert.ToInt32(dv["menuid"])); 这一句取的好想不是子级id,为什么不调试一下看看究竟传了什么值呢?

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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