asp:Menu
テーブルフリー レンダリング モードの ASP.NET 4.0 Webforms ページでコントロールを使用しています。
<asp:Menu ID="MenuBase" runat="server" DataSourceID="SiteMapDataSourceMenu"
Orientation="Horizontal" CssClass="contentmenu" RenderingMode="List"
IncludeStyleBlock="false">
</asp:Menu>
メニューには、5 つまたは 6 つのメニュー項目を含む水平方向のメイン行があり、ユーザーがそれらの上にカーソルを合わせると、それらのいくつかは垂直方向のポップアップ メニューを開きます。
多くの場合、ポストバックが発生し、ページが再びレンダリングされると、メニューが一瞬 (たとえば、0.5 秒) ちらつきます。これは、ポップアップ メニューの項目を含むすべてのメニュー項目が 1 つまたは複数の行で表示されることを意味します。通常の意図した状態に戻る前に、互いに。
すべてのメニュー項目が「展開」表示されているこの短い瞬間に、メニューはブラウザで Javascript が無効にされているかのように見えます。(ポップアップ メニューの構築は、asp:menu コントロールで Javascript を使用することによって実現されているようです。)
この動作は非常に見苦しく、特に大きなメニュー (2 行または 3 行にわたる短いレンダリング) では、通常の表示に戻る前にページ コンテンツ全体が下に移動されます。
この問題の解決策を知っていますか?
前もって感謝します!
(注記: ASP.NET 4.0 にアップグレードする前に、よく知られた CodePlex の CSS フレンドリーなメニュー コントロールを使用したことを言及する必要があります。CSS フレンドリーなコントロールはもう必要ないと思っていました。 4 には組み込みのリスト レンダリング モードが用意されています. 私が覚えている限りでは、CSS に適したコントロールではこのちらつきはありませんでした. このコントロールは Javascript を使用していないと思います. おそらくこれは悪いステップでした.可能であれば、CSS フレンドリーなメニュー コントロールに戻らずに解決策を探しています。)
編集:
このちらつきはブラウザーに依存しませんが、IE 8 と 7 で最も顕著です。