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" />
答案 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