ASP.NET 4.0 проблемы Рендеринга с управлением меню после удаления controlRenderingCompatibilityVersion = “3.5”

Я на самом деле перемещаю веб-сайты в ASP.NET 4.0, имея проблемы с новым рендерингом средств управления меню. Мои веб-сайты делают интенсивное использование вложенных меню. Эффекты при наведении курсора используются, и расположение определяется комбинацией тем и кожи со связанным CSS.

Если я удаляю страницы controlRenderingCompatibilityVersion атрибут, они больше не представляются как вложенные таблицы, но как Теги ул./лития. Это повреждает мое расположение во многих отношениях. Любые рекомендации для миграции сложного расположения меню ASP.NET очень приветствуются.

Отредактированный: Разметка и CSS детализируют как ответ на комментарий

Соответствующий раздел файла кожи

<asp:Menu runat="server" DynamicHorizontalOffset="2" Orientation="Horizontal" SkipLinkText=""
    StaticPopOutImageUrl="~/App_Images/Themes/arrow_down.gif" DynamicPopOutImageUrl="~/App_Images/Themes/arrow_right.gif">
    <StaticMenuItemStyle CssClass="MenuDefaultMenuItemStyle" />
    <DynamicMenuItemStyle  CssClass="MenuDefaultMenuItemStyle" />

    <StaticSelectedStyle CssClass="MenuDefaultSelectedStyle" />
    <DynamicSelectedStyle CssClass="MenuDefaultSelectedStyle" />

    <StaticHoverStyle CssClass="MenuDefaultHoverStyle" />
    <DynamicHoverStyle CssClass="MenuDefaultHoverStyle" />
</asp:Menu>

<asp:Menu runat="server" SkinId="MenuVertical" DynamicHorizontalOffset="2" SkipLinkText=""
    StaticPopOutImageUrl="~/App_Images/Themes/arrow_right.gif" DynamicPopOutImageUrl="~/App_Images/Themes/arrow_right.gif">
    <StaticMenuItemStyle CssClass="MenuVerticalMenuItemStyle" />
    <DynamicMenuItemStyle  CssClass="MenuVerticalMenuItemStyle" />

    <StaticSelectedStyle CssClass="MenuVerticalSelectedStyle" />
    <DynamicSelectedStyle CssClass="MenuVerticalSelectedStyle" />

    <StaticHoverStyle CssClass="MenuVerticalHoverStyle" />
    <DynamicHoverStyle CssClass="MenuVerticalHoverStyle" />
</asp:Menu>

Таблица стилей

.MenuDefaultMenuItemStyle
{
    background-color: #D5DCE1;
    color: #234875;
    padding: 2px;
    width: 100%;
}

.MenuDefaultSelectedStyle
{
    background-color: #3C5778;
    color: #FFFFFF;
    padding: 2px;
    width: 100%;
}

.MenuDefaultHoverStyle
{
    background-color: #666666;
    color: #FFFFFF;
    padding: 2px;
    width: 100%;
}

.MenuVerticalMenuItemStyle
{
    background-color: #FFFFFF;
    border: 1px solid #D5DCE1;
    color: #234875;
    height: 30px;
    padding: 2px;
    width: 100%;
}

.MenuVerticalSelectedStyle
{
    background-color: #003366;
    border: 1px solid #D5DCE1;
    color: #FFFFFF;
    height: 30px;
    padding: 2px;
    width: 100%;
}

.MenuVerticalHoverStyle
{
    background-color: #EEEEEE;
    border: 1px solid #000000;
    color: #234875;
    height: 30px;
    padding: 2px;
    width: 100%;
}
26
задан Dirk Brockhaus 20 July 2010 в 06:38
поделиться

1 ответ

Если вы удалите атрибут controlRenderingCompatibilityVersion из web.config, режим по умолчанию для отображения меню неявно изменится с Таблица на Список . Если вы по-прежнему хотите, чтобы ваше меню отображалось с помощью тегов таблиц, вам необходимо явно указать это в элементе управления asp: menu, добавив атрибут RenderingMode :

<asp:Menu runat="server" RenderingMode="Table" ... >
   ...
</asp:Menu>

(см. Также раздел примечаний здесь, в MSDN: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.renderingmode.aspx )

32
ответ дан 28 November 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: