我试图在ASP.NET中创建从数据库驱动的动态菜单项。在创建menuitem之后,我想将它们与每个菜单项的按钮单击事件绑定,传递参数而不是NavigateUrl选项。
MenuItem menuItem = new MenuItem
{
Value = row["MenuId"].ToString(),
Text = row["Title"].ToString(),
//NavigateUrl = row["Url"].ToString(),
//some logic to bind to onclick event
};
答案 0 :(得分:1)
您无法将点击事件添加到每个menuItem
,您必须将其添加到Menu
,并在点击事件中验证点击了哪个menuItem
。
因此,请务必将MenuItemClick
添加到菜单中,如下所示:
menu.MenuItemClick += Menu_MenuItemClick;
然后你可以有一个创建MenuItems
的函数,在事件处理程序中你可以用这样的东西来验证选择了哪一个:
private void Menu_MenuItemClick(object sender, MenuEventArgs e)
{
if(e.Item.Text == "text1")
{
//Do what you need
}
else if(e.Item.Text == "text2")
{
//Do what you need
}
}
答案 1 :(得分:0)
我解决了这个问题。我不得不将OnMenuItemClick事件添加到菜单中,例如OnMenuItemClick =" Menu_OnClick"。基于点击,我检查了
protected void Menu_OnClick(object sender, MenuEventArgs e)
{
string value = e.Item.Value.ToString();
//OR
// string value = e.Item.Text.ToString();
//some logic
}