如何在菜单项上单击ASP.NET中设置会话变量

时间:2014-10-08 16:47:54

标签: asp.net asp.net-controls

ASP新手在这里,在我的网站上我需要在单击菜单项时设置会话变量(不在页面加载或初始化或初始化)。

如何实现这一点,我的母版页中有一个菜单控件,附有一个站点地图文件?

如何知道点击特定菜单项的时间?

<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 个答案:

答案 0 :(得分: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 + ".";
  }

答案 1 :(得分: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

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