在我的asp.net Web应用程序中,我已根据登录用户角色以编程方式创建了一个菜单和menuItem。下面给出了代码...
Menu menu = new Menu();
menu.CssClass = "menu";
menu.IncludeStyleBlock = false;
menu.EnableViewState = false;
menu.Orientation = Orientation.Horizontal;
if (roleType.equals("teacher"))
{
MenuItem categoryItemCh1 = new MenuItem("Home");
categoryItemCh1.NavigateUrl = "Teacher/TestsList.aspx";
menu.Items.Add(categoryItemCh1);
MenuItem categoryItemCh2 = new MenuItem("Account");
categoryItemCh2.NavigateUrl = "Account/underconstruction.aspx";
menu.Items.Add(categoryItemCh2);
MenuItem categoryItemCh3 = new MenuItem("Reports");
categoryItemCh3.NavigateUrl = "Account/underconstruction.aspx";
menu.Items.Add(categoryItemCh3);
MenuItem categoryItemCh4 = new MenuItem("Logout");
menu.Items.Add(categoryItemCh4);
}
因此,当用户点击退出菜单项时,我必须触发menuItem点击事件以执行以下过程。
1.清除与用户相关的所有会话
2.转到登录页面。
但我不知道如何在asp.net中以编程方式添加menuItem click事件。请指导我摆脱这个问题......
答案 0 :(得分:2)
使用MenuItemClick事件。您不是为每个菜单项添加事件,而是向菜单本身添加
menu.OnMenuItemClick += Menu_MenuItemClick;
void Menu_MenuItemClick(Object sender, MenuEventArgs e)
{
// Display the text of the menu item selected by the user.
Message.Text = "You selected " +
e.Item.Text + ".";
}
您可以使用MenuEventArgs确定单击了哪个菜单项
答案 1 :(得分:0)
要向菜单添加事件处理程序,您需要在菜单的EventHandlerList上使用AddHandler或AddHandlers方法。要获取EventHandlerList,请参阅Menu.Events属性。
答案 2 :(得分:0)
以下是我解决问题的方法......
protected void RadMenu2_ItemClick(object sender, RadMenuEventArgs e)
{
switch (RadMenu2.SelectedItem.Text)
{
case "Menu Text 1":
Your code or method;
break;
case "Menu Text 2":
Your code or method;
break;
case "etc...":
Your code or method;
break;
}