使用菜单项添加按钮单击事件而不是导航URL

时间:2017-03-21 16:30:50

标签: c# asp.net

我试图在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
    };

2 个答案:

答案 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
}