2013-06-26 22 views
0

单击菜单项时,菜单项单击事件未能触发事件方法后面的代码。我在菜单上添加了OnMenuItemClick(Menu_Item_Click),即使它无法触发事件后面的代码。在asp.net菜单中未触发MenuItem事件

我该如何解决这个问题?

/** Asp.net模板代码放在这里**/

 <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" 
      EnableViewState="True" IncludeStyleBlock="False" Orientation="Horizontal" 
      BackColor="#F7F6F3" DynamicHorizontalOffset="2" Font-Names="Arial, Helvetica, sans-serif" 
      Font-Size="0.8em" ForeColor="#7C6F57" StaticSubMenuIndent="10px" OnMenuItemClick="Menu_Item_Click"> 

<Items> 
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Default"> 
<asp:MenuItem NavigateUrl="~/Search.aspx" Text="Search"> 
</Items> 
</asp:Menu> 

代码隐藏代码放在这里

protected void Menu_Item_Click (object sender, MenuEventArgs e) 
{ 
    /** Some Validation goes here **/ 
} 
+0

我们可以看看您是如何在asp中定义您的manu项目的吗? – Kurubaran

+0

立即检查更新的代码 – Smaug

+0

我仍然看不到asp模板中的菜单项 – Kurubaran

回答

1

根据您的代码和说明,我的经验,问题与没有指定menuitem的文本和值属性。

例:

<asp:Menu runat="server" ID="MainMenuCtl" BorderWidth="0" 
      Orientation="Vertical" onmenuitemclick="MainMenuCtl_MenuItemClick"> 
      <Items> 
       <asp:MenuItem ImageUrl="~\App_Themes/SiteDefault/Images/Mediabutton.png" value="&nbsp;" ToolTip="Media Clips"> 
       </asp:MenuItem> 
       <asp:MenuItem ImageUrl="~\App_Themes/SiteDefault/Images/CalendarButton.png" value="&nbsp;&nbsp;" ToolTip="View calendar of events"> 
       </asp:MenuItem> 
       <asp:MenuItem ImageUrl="~\App_Themes/SiteDefault/Images/PoetryButtonReg.png" value="&nbsp;&nbsp;&nbsp;" ToolTip="Poetry"> 
       </asp:MenuItem> 
      </Items> 
     </asp:Menu> 
+0

尽管如此,我仍然面临同样的问题 – Smaug

+0

您是否也可以添加值属性? – Kurubaran

+0

我与NavigateURL一起增值 – Smaug

2

我也遇到这个问题。 我通过消除NavigateUrl字段解决了这个问题。 如果您消除此字段,则会触发点击事件。 在函数(事件处理程序函数)中,可以使用以下代码使用以下代码导航到必要的页面。

protected void MainMenu_MenuItemClick(object sender, MenuEventArgs e) 
{ 
    /*your necessary code*/ 
    Response.Redirect(((Menu)sender).SelectedItem.Target); 

} 

在上面的代码标靶球场与必要的地址的菜单标签被指定。

或者你可以直接指定地址。

protected void MainMenu_MenuItemClick(object sender, MenuEventArgs e) 
{ 
    /*your necessary code*/ 
    Response.Redirect("Page.aspx"); 

}