menuitemclick事件在Master但不是子页面上触发

时间:2013-04-29 15:10:27

标签: c# asp.net

我在母版页上有一个菜单,其中包含以下内容:

<asp:SiteMapDataSource runat="server" ID="SiteMapDataSource" ShowStartingNode="false" /> 

<asp:Menu ID="mnuMain1" runat="server" RenderingMode="List" StaticSelectedStyle-CssClass="selected" IncludeStyleBlock="false" DataSourceID="siteMapDataSource" MaximumDynamicDisplayLevels="0" OnMenuItemClick="mnuMain1_MenuItemClick">
         <DataBindings>
            <asp:MenuItemBinding DataMember="SiteMapNode" TextField="Title" />
         </DataBindings>
</asp:Menu>

.Master.cs文件中的代码:

protected void mnuMain1_MenuItemClick(object sender, MenuEventArgs e)
    {
        MenuItem mnu = e.Item;
    }

我创建了一个继承自master的网页 - 这要求用户填充Location字段。当用户单击菜单项时,需要在继续之前检查位置字段是否有值。我在代码中声明了一个MenuItemClick事件处理程序。 MenuItemClick事件在Master上触发,但不在继承的页面上触发。

我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:1)

AutoEventWireup在使用母版页的页面上不起作用。您必须显式绑定事件接收器。您可以通过在主页面上正确公开控件然后绑定到子页面中的事件来完成此操作。

查看这篇文章: http://www.codeproject.com/Articles/36055/Interaction-Between-Content-Page-and-Master-Page