如何将菜单项值从网站母版页获取到另一个页面



我有一个菜单,我的母版页上有哪个子菜单。当菜单打开第二个窗口时,我想知道用户选择了哪个选项。例如:顶级菜单是"编辑现有项目"。子选项包括"修改项目状态;修改项目描述;修改物料 HTS 代码。

在过去的七个小时里,我几乎尝试了我找到的每一篇文章和建议。

在站点主控数据上:

<asp:Menu ID="NavigationMenu0" runat="server" CssClass="auto-style7" 
EnableViewState="False" IncludeStyleBlock="False" 
Orientation="Horizontal" 
Height="16px" style="margin-left: 20px" Width="215px" BackColor="#99CCFF" 
DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="Small" 
ForeColor="#284E98" StaticSubMenuIndent="10px" 
OnMenuItemClick="NavigationMenu0_MenuItemClick" >
<DynamicHoverStyle BackColor="#284E98" ForeColor="White" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicMenuStyle BackColor="#B5C7DE" />
<DynamicSelectedStyle BackColor="#507CD1" />
<Items>
<asp:MenuItem Text="Edit Existing Item" ToolTip="Edit Item already in GP" Value="Edit Existing Item">
<asp:MenuItem Text="Change Item  Status" ToolTip="Change the status of an item" Value="S" ></asp:MenuItem>
<asp:MenuItem Text="Edit Item Description" ToolTip="Edit the description of an Item" Value="D"></asp:MenuItem>
<asp:MenuItem Text="Change HTS Code" ToolTip="Change the HTS Code of an Item" Value="H"></asp:MenuItem>
</Items>

母版页上的后面代码是:

protected void NavigationMenu0_MenuItemClick(Object sender, MenuEventArgs e)
//get the menu option selected by the user
{
var menu = (sender as Menu);
//ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('Selected Menu is : " + menu + "')", true);
foreach (MenuItem item in menu.Items)
{
System.Diagnostics.Debug.Print(item.Text);
}
var clickedMenuItem = e.Item;
Session["1"] = e.Item.Text;
Response.Redirect("~/ChangeItem.aspx?=" + e.Item.Text);
}

从我所读到的内容来看,获取菜单值的最佳方法是 在我的 ChangeItemPage 上,我有以下内容:

protected void NavigationMenu0_MenuItemClick(Object sender, MenuEventArgs e)
//get the menu option selected by the user
{
string ChgItemType = Request.QueryString["value"];
WebMsgBox.Show("The Menu Item is: " + ChgItemType);
}

作为测试,我也把它放在: 受保护的无效Page_Load(对象发送器,事件参数 e) { txtItemSearch.Focus();

//var menux = (sender as Menu).SelectedValue;
string ChgItemType = Request.QueryString["value"];
WebMsgBox.Show("The Menu Item is: " + ChgItemType);
}

ChangeItemType 值为 NULL。

我找到了答案。 Changing Response.Redirect("~/ChangeItem.aspx?=" + e.Item.Text);自 Response.Redirect("~/ChangeItem.aspx?value=" + e.Item.Value);解决了。

最新更新