1

单击菜单项时,菜单项单击事件未能触发事件方法后面的代码。我在菜单中添加了 OnMenuItemClick(Menu_Item_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>

代码隐藏代码在这里

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

2 回答 2

3

我也遇到过这个问题。我通过消除字段 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");

}
于 2013-07-02T15:37:32.960 回答
1

根据您的代码和描述,根据我的经验,问题与文本有关,并且未指定 menuitem 的 value 属性。

前任:

 <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>
于 2013-06-26T14:04:48.697 回答