簡體   English   中英

回發后不顯示ASP.Net子菜單

[英]ASP.Net submenu not show after postback

我已經在母版頁中使用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>

下拉列表回發后,將鼠標懸停在菜單上,子菜單不顯示。 我需要單擊菜單,然后將鼠標懸停在子菜單上。
出什么事了嗎? 請幫忙

我也間歇性地遇到了這種情況,其他任何建議都對我沒有幫助。 最終,我決定刪除服務器端代碼的每一行,然后逐節取消對它們的刪除,直到我發現了引起它的原因。

原來,這是使用ClientScript.RegisterStartupScript(...)方法進行服務器端JavaScript注入的結果。 在某些情況下,在注入腳本時,在注入的JavaScript中引用的客戶端對象不可見。 其他人暗示頁面生命周期是此問題的根本原因,這將證明這一點。

一旦發現這一點,就可以通過確保腳本在引用它們之前檢查文檔元素的可見性來非常輕松地對其進行修復。 令人驚訝的是,盡管啟用了JavaScript警告,但這並未產生任何客戶端錯誤。

禁用回發根菜單或父菜單:

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

當移動設備打開應用程序時,此選項更有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM