1

私の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 クリック イベントをプログラムで追加する方法がわかりません。この問題から抜け出す方法を教えてください...

4

3 に答える 3

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 を使用して、クリックされたメニュー項目を特定できます。

于 2013-01-17T05:57:46.937 に答える
0

メニューにイベント ハンドラーを追加するには、メニューの EventHandlerList で AddHandler または AddHandlers メソッドを使用する必要があります。EventHandlerList を取得するには、Menu.Events プロパティを参照してください。

于 2013-01-17T06:15:37.930 に答える
0

Here is how I solved the problem...

    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;        
        }
于 2016-02-02T17:48:54.910 に答える