Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > .Browser Menu Fix Visual Studio 2010


Автор: A5uKa 29.10.2010, 10:55
I used

Код

<browsers>
  <browser refID="Safari1Plus">
    <controlAdapters>
      <adapter controlType="System.Web.UI.WebControls.Menu"
                       adapterType="" />
    </controlAdapters>
  </browser>
</browsers>


This menufix for my menu to make it html table in browsers like safari. But with 2010 it makes no sense and even in firefox my menu html code is not a table.

old menu html :

Код

    <div id="nav-main">

                <a href="#ctl00_LoginV_Menu2_SkipLink"><img alt="Проход по ссылкам навигации" src="/WebResource.axd?d=Ruzlo-4dhNec45L9Sc7btQ2&amp;t=633802801995006876" width="0" height="0" style="border-width:0px;" /></a><table id="ctl00_LoginV_Menu2" class="menu-main ctl00_LoginV_Menu2_2" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="ctl00_LoginV_Menu2n0"><table cellpadding="0" cellspacing="0" border="0" width="100%">
            <tr>
                <td style="white-space:nowrap;"><a class="ctl00_LoginV_Menu2_1" href="Default.aspx">Главная</a></td>
            </tr>
        </table></td>

    </tr>
</table><a id="ctl00_LoginV_Menu2_SkipLink"></a>

        <div>
            &nbsp;</div>
    </div>


new menu html :

Код

    <div id="nav-main">


                <a href="#LoginV_Menu2_SkipLink"><img alt="Skip Navigation Links" src="/newFSW/WebResource.axd?d=Vn-55UTke2YWPv4FyL5xNA2&amp;t=634067527271098325" width="0" height="0" style="border-width:0px;" /></a><div class="menu-main" id="LoginV_Menu2">
    <ul class="level1">
        <li><a class="level1" href="Default.aspx">Главная</a></li>
    </ul>
</div><a id="LoginV_Menu2_SkipLink"></a>

        <div>
            &nbsp;</div>
    </div>


My asp.net code :

Код

<div id="nav-main">
    <asp:LoginView ID="LoginV" runat="server">
        <AnonymousTemplate>
            <asp:Menu ID="Menu2" runat="server" Orientation="Horizontal" Width="747px" CssClass="menu-main"
                MaximumDynamicDisplayLevels="0" StaticSelectedStyle-CssClass="StaticSelectedStyle"
                Height="32px" StaticSubMenuIndent="18px">
                <StaticSelectedStyle CssClass="StaticSelectedStyle"></StaticSelectedStyle>
                <Items>
                    <asp:MenuItem Text="Главная" NavigateUrl="~/Default.aspx" />
                </Items>
            </asp:Menu>
        </AnonymousTemplate>
        <LoggedInTemplate>
            <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal"
                Width="747px" CssClass="menu-main" MaximumDynamicDisplayLevels="0" StaticSelectedStyle-CssClass="StaticSelectedStyle"
                Height="32px" StaticSubMenuIndent="18px">
                <StaticSelectedStyle CssClass="StaticSelectedStyle"></StaticSelectedStyle>
            </asp:Menu>
        </LoggedInTemplate>
    </asp:LoginView>
    <div>
        &nbsp;</div>
</div>


and uses css

Код

#nav-main {
    background:#527AB6 url(../../images/bg-nav.png) no-repeat;
    margin-left:auto;
    margin-right:auto;
    width:97.1%;
    padding:.8em 0 1em 2.5%;
    position:relative;
    font-weight:bold;
}

#nav-main div {
    background:#4b6cb5 url(../../images/bg-nav-side.png) top right no-repeat;
    width:25%;
    _width:25.5%;
    position:absolute;
    top:0;
    right:0;
    padding:.8em 0 1em 0;
}


So how to fix Menu control html convert in Visual Studio 2010 (such it was in vs2008) ?


КАК ПАЧИНИТЬ ?  smile 

Автор: Любитель 29.10.2010, 23:44
1. Что за смесь языков?!
2. Учимся читать документацию - http://msdn.microsoft.com/en-us/library/system.web.ui.control.renderingcompatibility.aspx
3. А по-хорошему, табличной вёрстки надо избегать (да, конечно, это не правило). Впрочем, это уже вроде прописная истина.

Автор: Freyzer 30.10.2010, 15:12
Ничи - О непонял, кроме одного, проблемы с меню в Сафари  smile , до сих пор пользуюсь VS 2005, есть небольшие проблемы с меню в Сафари и ГуглеХроме, зайди на http://www.face-to-interface.net/, через Сафари или ГулеХром, один клик по меню, все работает, я хак использую. Может проблема в АпплеВебКит?

Автор: A5uKa 31.10.2010, 19:51
Табличная вёрстка web menu элемента просто почти необходима, а в 2010 хак не работает, вот в чём смысл.

Автор: Freyzer 31.10.2010, 22:57
Как это не работает?! smile  Это программное решение и выглядит оно так: 
Код

If (Request.UserAgent.IndexOf("AppleWebKit") > 0) Then
                Request.Browser.Adapters.Clear()
            End If

Я думаю, версия студии тут не причем.

Автор: Любитель 1.11.2010, 09:39
Цитата(A5uKa @  31.10.2010,  19:51 Найти цитируемый пост)
Табличная вёрстка web menu элемента просто почти необходима

Блин, ещё раз - выставляй рендеринг мод в режим компатибилити с 3.5.

Автор: A5uKa 1.11.2010, 11:20
Цитата(Любитель @ 1.11.2010,  09:39)
Цитата(A5uKa @  31.10.2010,  19:51 Найти цитируемый пост)
Табличная вёрстка web menu элемента просто почти необходима

Блин, ещё раз - выставляй рендеринг мод в режим компатибилити с 3.5.

Хм... А как ?

Автор: Любитель 1.11.2010, 18:36
http://msdn.microsoft.com/en-us/library/system.web.ui.control.renderingcompatibility.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)