2015-02-24 43 views
2

我想將菜單項中的值傳遞給受尊敬的導航頁面。傳遞菜單項中的值

<asp:menu id="myMenu" 
    staticdisplaylevels="2" 
    staticsubmenuindent="10" 
    orientation="Horizontal" 
    dynamichorizontaloffset="10" 
    onmenuitemclick="myMenu_MenuItemClick" 
    target="_blank" 
    runat="server" ForeColor="White" > 
    <items> 
     <asp:menuitem  
     text="Home" 
     tooltip="Home"> 

     <asp:menuitem 
      text="Music" 
      tooltip="Music"> 
        <asp:menuitem 
        text="Classical" 
        tooltip="Classical"/> 
        <asp:menuitem 
        text="Rock" 
        tooltip="Rock"/> 
        <asp:menuitem 
        text="Jazz" 
        tooltip="Jazz"/> 
     </asp:menuitem> 

     <asp:menuitem 
      text="Movies" 
      tooltip="Movies"> 
      <asp:menuitem 
      text="Action" 
      tooltip="Action"/> 
      <asp:menuitem 
      text="Drama" 
      tooltip="Drama"/> 
      <asp:menuitem 
      text="Musical" 
      tooltip="Musical"/> 
     </asp:menuitem> 
     </asp:menuitem> 
    </items> 

    </asp:menu> 

要通過菜單項文本的代碼如下:

protected void myMenu_MenuItemClick(object sender, EventArgs e) 
{ 
    Session["1"] = (sender as MenuItem).Text; 
    Response.Redirect("~/CategorySearch.aspx?Category=" + Session["1"].ToString()); 
} 

我得到一個NullReferenceException這是很有趣的,因爲我剛好路過MenuItem.Why的文字是什麼?

回答

0

如果你有一個事件處理程序連接到你的菜單(或菜單項),您可以輕鬆地投了sender作爲MenuItem像這樣:

Web表單:

<asp:Menu runat="server" ID="mymenu" OnMenuItemClick="mymenu_MenuItemClick"> 
     <Items> 
      <asp:MenuItem Text="Home" /> 
      <asp:MenuItem Text="Contact" /> 
      <asp:MenuItem Text="About Us" /> 
     </Items> 
    </asp:Menu> 

代碼背後:

protected void mymenu_MenuItemClick(object sender, MenuEventArgs e) 
    { 
     // this is the menu itself, you can iterate the Items collection if you need. 
     var menu = (sender as Menu); 
     foreach (MenuItem item in menu.Items) 
     { 
      System.Diagnostics.Debug.Print(item.Text); 
     } 

     // this is the MenuItem object that was clicked 
     var clickedMenuItem = e.Item; 

     // store text value in your session 
     Session["1"] = e.Item.Text; 

     // redirect 
     Response.Redirect("~/CategorySearch.aspx?Category=" + e.Item.Text); 

    } 
+0

我將與第一個選項,因爲第二個看起來令我困惑。所以,我用它並得到一個NullReferenceException。請檢查主要問題,因爲我已編輯它。 – RelatedRhymes 2015-02-25 13:25:23

+0

編輯使這更清晰。 – laylarenee 2015-02-25 13:40:15

+0

謝謝!有效。 – RelatedRhymes 2015-02-25 13:50:36

相關問題