我使用asp:Menu
控件的ASP.NET 4.0 Web表單頁面上可用表渲染模式:如何擺脫醜陋的ASP:菜單閃爍?
<asp:Menu ID="MenuBase" runat="server" DataSourceID="SiteMapDataSourceMenu"
Orientation="Horizontal" CssClass="contentmenu" RenderingMode="List"
IncludeStyleBlock="false">
</asp:Menu>
菜單上有一個水平主排,5或6個菜單項,其中一些垂直開放當用戶懸停在它們上面時彈出菜單。
通常,當發生任何回發並且頁面被再次呈現時,菜單「閃爍」片刻(例如,半秒),這意味着:所有菜單項目(包括彈出菜單中的項目)顯示爲一個或在它們返回到正常的預期狀態之前,彼此相繼更多的行。
在所有菜單項的「展開」顯示的短暫時刻,菜單看起來像是如果JavaScript在瀏覽器中被禁用。 (看起來,構建彈出式菜單是通過在asp:菜單控件中使用一些Javascript來實現的。)
這種行爲非常難看,尤其是對於大菜單(呈現時間超過2或3行的短時間)整個頁面內容在跳轉回正常顯示之前向下移動。
你知道這個問題的解決方案嗎?
預先感謝您! (注意:我應該提到的是,在升級到ASP.NET 4.0之前,我使用了CodePlex中着名的CSS友好菜單控件,我認爲不再需要CSS友好控件,因爲asp :版本4中的菜單現在提供了一個內置的列表渲染模式,據我所知,我沒有使用CSS友好的控件閃爍,我認爲這個控件沒有使用Javascript。步我現在尋找一個解決方案,而不必返回到CSS友好的菜單控制,如果可能的話)
編輯:
這是閃爍器independ雖然在IE 8和7中最引人注目。在IE 7(或IE 8中的兼容模式)中,它非常難看,因爲菜單項以超過5或6行的對角線格式顯示。
你沒有提到你正在使用母版頁,但是這個問題中的一些答案可能有幫助(不知道你是否已經看到它)。 HTTP://計算器。com/questions/888245/asp-net-menu-control-renders-when-on-a-master-page – 2010-07-13 20:03:55
謝謝你的鏈接!這非常有幫助!我沒有看到這個問題。是的,我正在使用母版頁,乍看之下,它看起來像將菜單放在自己的ContentPlaceHolder中的解決方案正在工作。我必須在現場服務器上測試它,因爲在我的開發機器上,我不經常發生這種閃爍現象。在具有正常「互聯網實時延遲」的生產服務器上,這一點更爲明顯。 – Slauma 2010-07-13 20:48:11
不幸的是,對真實延遲的現場服務器進行的測試表明,將菜單封裝在自己的ContentPlaceHolder中的解決方案實際上並不奏效。閃爍仍然存在(在IE 8(有和沒有兼容模式)和Firefox測試)。 – Slauma 2010-07-19 20:08:14