Я использую элемент управления 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 пунктами меню, а некоторые из них открывают вертикальные всплывающие меню, когда пользователь на них нависает.
Часто, когда происходит обратная передача, и страница снова отображается, меню "мерцает" на мгновение (скажем, полсекунды), что означает: все пункты меню, включая элементы во всплывающих меню, отображаются в одном или нескольких строки один за другим, прежде чем они вернутся в нормальное состояние.
В этот короткий момент "развернутого" отображения всех пунктов меню меню выглядит КАК ЕСЛИ Javascript был отключен в браузере. (Кажется, что создание всплывающих меню достигается с помощью некоторого Javascript в элементе управления asp:.)
Это поведение довольно уродливое, особенно с большим меню (рендеринг на короткий промежуток времени более чем на 2 или 3 строки). Весь контент страницы перемещается вниз, прежде чем он вернется к нормальному отображению.
Знаете ли вы какое-либо решение этой проблемы?
Заранее благодарю вас!
(Примечание: я должен упомянуть, что я использовал известный CSS-удобный элемент управления меню из CodePlex до того, как я обновился до ASP.NET 4.0. Я полагал, что мне больше не нужен CSS-удобный элемент управления, поскольку asp: Меню в версии 4 теперь имеет встроенный режим рендеринга списка. Насколько я помню, у меня не было этого мерцания с помощью CSS-friendly элемента управления, и я думаю, что этот элемент управления не использует Javascript. Возможно, это был неудачный шаг. Я смотрю сейчас решение, не возвращаясь к удобному меню управления меню, если это возможно.)
Edit:
Это мерцание не зависит от браузера, хотя наиболее заметно в IE 8 и 7. В IE 7 (или режиме совместимости в IE 8) это необычайно уродливо, так как пункты меню отображаются в сумасшедшем диагональном шаблоне даже в 5 или 6 строках.