MenuItem事件不是';t在asp.net菜单中触发

本文关键字:net asp 菜单 事件 MenuItem | 更新日期: 2023-09-27 18:20:03

单击菜单项时,菜单项单击事件未能触发事件方法背后的代码。我在菜单上添加了OnMenuItemClick(MenuItem_Click),尽管它无法触发代码隐藏事件。

我该如何解决这个问题?

/**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>

Codebehing Code Goes here

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

MenuItem事件不是';t在asp.net菜单中触发

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

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

在上面的代码中,TargetField在Menu标记中指定,并带有必要的地址。

或者您可以直接通过指定地址。

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

根据您的代码和描述,根据我的经验,该问题与文本有关,并且没有指定菜单项的值属性。

例如:

 <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>