部分回发后不显示asp子菜单项

时间:2015-11-17 20:30:06

标签: c# jquery asp.net menu

我有一个asp:Menu对象,可以从web.sitemap文件动态构建下拉样式菜单。菜单工作正常,直到从UpdatePanel中触发部分回发。

回发后,下拉功能不再有效(检查页面时,对象的html代码仍然可见)。第一级项目仍然可以点击,但那些子项目不会像他们应该那样扩展。

我发现这些较旧的帖子存在同样的问题,但他们并没有真正的解决方案。

ASP.Net submenu not show after postback

asp menu not working after partial postback

如何在部分回发后让我的菜单再次运行?

的Site.Master

        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
            <asp:Menu ID="NavMenu" StaticMenuStyle-CssClass="nav navbar-nav" DynamicMenuStyle-CssClass="dropdown-menu" runat="server" 
                    EnableViewState="false" RenderingMode="List" 
                    StaticEnableDefaultPopOutImage="false"
                    IncludeStyleBlock="false" Orientation="Horizontal"
                    DataSourceID="SiteMapDataSource1" OnMenuItemDataBound="NavMenu_MenuItemDataBound" ></asp:Menu>
                <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
                </ul>
            <ul class="nav navbar-nav  navbar-right">
                <li class="navbar-text">Welcome <asp:label runat="server" id="FullName">User</asp:label></li>
                <li><asp:Button ID="LogoutBtn" runat="server" OnClick="btnLogout_Click" CssClass="Logout-button" Text="Logout" /></li>
            </ul>
        </div>

任何包含更新面板的页面

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:ListBox ID="ListBox1" runat="server" Rows="15" SelectionMode="Single" OnSelectedIndexChanged="SelectedIndexChanged" AutoPostBack="true"></asp:ListBox>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

1 个答案:

答案 0 :(得分:1)

根据类似问题的答案提供建议(下面的链接) - 将ul菜单结构包装在asp:UpdatePanel中,解决了部分回发后菜单无法正确显示的问题。

不确定这是否真的是解决问题的最佳方法,但确实有效!

asp:Menu stops working after a different control performs partial AJAX postback