2014-10-08 34 views
0

ASP新手在我的網站中當我單擊菜單項(不是頁面加載或預初始化或初始化)時,需要設置會話變量。如何設置菜單項在ASP.NET中單擊的會話變量

我該如何做到這一點,我有一個菜單控制在我的母版頁有一個網站地圖文件附加到它?

如何知道某個特定菜單項何時被點擊?

<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

基於您的代碼和文檔瑤池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

On 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 2014-10-08 17:09:50

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 + "."; 
    } 
相關問題