2014-10-08 2 views
0

ASP новичок здесь, на моем веб-сайте Мне нужно установить переменную сеанса, когда я нажимаю элемент меню (не на загрузку страницы, не на init или init).Как установить переменную сеанса на щелчок элемента меню в ASP.NET

Как я могу достичь этого, у меня есть элемент управления меню на моей главной странице с прикрепленным к нему файлом sitemap?

Как узнать, когда нажата конкретная кнопка меню?

<asp:Menu ID="mainMenu" runat="server" DataSourceID="siteMapSource" 
    StaticDisplayLevels="10" Width="150px"> 
    <StaticSelectedStyle CssClass="menuNodeSelected" /> 
    <LevelMenuItemStyles> 
     <asp:MenuItemStyle Font-Bold="True" Font-Underline="False" /> 
    </LevelMenuItemStyles> 
    <StaticMenuItemStyle CssClass="menuNode" /> 
</asp:Menu> 
<asp:SiteMapDataSource ID="siteMapSource" runat="server" ShowStartingNode="False" /> 

ответ

2

на основе кода и документации finded на MSDN вы должны иметь что-то вроде этого:

По Код разметки (что приведет к HTML, который будет отправлено Клиента)

<asp:Menu ID="mainMenu" runat="server" DataSourceID="siteMapSource" 
    StaticDisplayLevels="10" Width="150px" 
    OnMenuItemClick="NavigationMenu_MenuItemClick"> 
    <StaticSelectedStyle CssClass="menuNodeSelected" /> 
    <LevelMenuItemStyles> 
     <asp:MenuItemStyle Font-Bold="True" Font-Underline="False" /> 
    </LevelMenuItemStyles> 
    <StaticMenuItemStyle CssClass="menuNode" /> 
</asp:Menu> 
<asp:SiteMapDataSource ID="siteMapSource" runat="server" ShowStartingNode="False" /> 

Вы должны установить метод будет называться на стороне сервера OnMenuItemClick, это будет расти события меню щелчка мыши. Это событие (в нашем случае): NavigationMenu_MenuItemClick.

Code-Behind Вы можете делать все, что захотите, когда выбран пункт меню.

void NavigationMenu_MenuItemClick(Object sender, MenuEventArgs e) 
{ 
    // Display the text of the menu item selected by the user. 
    Message.Text = "You selected " + e.Item.Text + "."; 
    Session["variable"] = e.Item.Text; 
} 

В e.Item.Text; вы найдете, что элемент был выбран.

основы: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.menuitemclick(v=vs.110).aspx

+0

+1 за правильный ответ - хотя я был минута быстрее :) – Pleun

2

ASP:Menu имеет Click событие. Вы можете обработать это событие, чтобы установить переменную сеанса.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.menuitemclick.aspx

Объявить его:

<asp:Menu ID="mainMenu" runat="server" onmenuitemclick="NavigationMenu_MenuItemClick" ... 

И справиться с этим:

void NavigationMenu_MenuItemClick(Object sender, MenuEventArgs e) 
    { 
    // Display the text of the menu item selected by the user. 
    Message.Text = "You selected " + 
     e.Item.Text + "."; 
    } 
Смежные вопросы