0

我在母版页中使用了 ASP.Net 菜单控件。我使用更新面板包装 Maincontent。当回发发生时,母版页中的子菜单在鼠标悬停时不显示。我需要再次单击菜单,然后将鼠标悬停在子菜单仅显示的菜单上。

母版页

        <div class="float-right">                
            <nav>
                <asp:Menu ID="mne" runat="server" Orientation="Horizontal" Font-Names="Arial, Verdana, Tahoma" 
                    OnMenuItemClick="mne_MenuItemClick"  StaticEnableDefaultPopOutImage="false" Width="510px" 
                    DynamicHorizontalOffset="20" StaticSubMenuIndent="250px" TabIndex="1" >
                    <LevelMenuItemStyles>
                        <asp:MenuItemStyle CssClass="level1" HorizontalPadding="10px" />
                    </LevelMenuItemStyles>
                    <StaticMenuStyle  />
                    <DynamicMenuStyle  />
                    <StaticHoverStyle BackColor="Wheat" />
                    <DynamicHoverStyle BackColor="Gray" ForeColor="White" />
                    <Items>
                        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home" 
                           Value="Home"></asp:MenuItem>
                        <asp:MenuItem Text="Management" Value="Management"
                           ToolTip="Management">
                            <asp:MenuItem Text="Edit" Value="Edit" ToolTip="Edit 
                                NavigateUrl="~/Edit.aspx">
                            </asp:MenuItem>
                        </asp:MenuItem>                           
                        <asp:MenuItem Text="Logout" Value="Logout"></asp:MenuItem>
                    </Items>
                </asp:Menu>
            </nav>
        </div>
    </div>
</header>

编辑.aspx

<asp:DropDownList ID="Country" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Country_SelectedIndexChanged">
                    </asp:DropDownList>

下拉列表回发后,将鼠标悬停在菜单上,子菜单不显示。我需要单击菜单,然后将鼠标悬停在子菜单上将显示。
有什么事吗?请帮忙

4

2 回答 2

0

我也间歇性地经历过这种情况,其他建议都没有对我有用。我最终决定删除每一行服务器端代码,然后逐段取消它们,直到我发现导致它的原因。

事实证明,这是使用 ClientScript.RegisterStartupScript(...) 方法进行服务器端 JavaScript 注入的结果。在某些情况下,注入的 JavaScript 中引用的客户端对象在注入脚本时是不可见的。其他人暗示页面生命周期是这个问题的根本原因,这将证明这一点。

一旦我发现了这一点,我就可以很容易地修复它,方法是确保脚本在引用它们之前检查文档元素的可见性。令人惊讶的是,尽管启用了 JavaScript 警告,但这并没有产生任何客户端错误。

于 2014-01-29T09:28:42.847 回答
0

禁用根或父菜单的回发:

MenuItem mnu = new MenuItem();
// if mnu has sub item(s)
mnu.Selectable = false;

当应用程序由移动设备打开时,此选项更有用。

于 2016-04-19T05:16:08.303 回答