2013-04-25 4 views
1

ниже в моем коде управления меню в моей ASPX страницеAsp: Меню не работает в IE 6. но работает отлично в IE 7 и выше

<table width="100%" cellpadding="0" cellspacing="0" style="background-color: Black; height: 30px; "> 
     <tr style="background-color: Black; height: 30px;"> 
      <td style="background-color: Black; width: 100%; height: 30px;"> 
      <div style="height:30px"> 
       <asp:Menu ID="NavigationMenu" runat="server" EnableViewState="false" RenderingMode="Default" CssClass="menu" ForeColor="White" 
        IncludeStyleBlock="false" Orientation="Horizontal" Height="30px" OnMenuItemClick="NavigationMenu_MenuItemClick" > 
        <StaticMenuItemStyle CssClass="menuitem" /> 
        <DynamicMenuItemStyle CssClass="menuitem" /> 
        <Items> 
         <asp:MenuItem NavigateUrl="~/Home.aspx" Text="Home" ToolTip="Home page" /> 
         <asp:MenuItem NavigateUrl="~/CommonUser.aspx" Text="Create/Edit User Access" ToolTip="Provide access to users" /> 
         <asp:MenuItem NavigateUrl="~/BulkUpload.aspx" Text="Bulk Upload" ToolTip="To bulk upload users " /> 
         <asp:MenuItem NavigateUrl="~/SearchUser.aspx" Text="View/Revoke User Access" ToolTip="View existing users access" /> 

         <asp:MenuItem Text="Admin" NavigateUrl="javascript:void(0);"> 
          <asp:MenuItem NavigateUrl="javascript:void(0);" Text="User" ToolTip="Create/Edit User for the application"> 
           <asp:MenuItem Text="Create User" NavigateUrl="~/AdminUser.aspx" /> 
           <asp:MenuItem Text="Edit User" NavigateUrl="~/EditAdminUser.aspx" /> 
          </asp:MenuItem> 
          <asp:MenuItem Text="Template" NavigateUrl="javascript:void(0);"> 
           <asp:MenuItem Text="Create Template" /> 
           <asp:MenuItem Text="Edit Template" /> 
          </asp:MenuItem> 
          <asp:MenuItem NavigateUrl="javascript:void(0);" Text="Server" ToolTip="Add/Edit server Details"> 
           <asp:MenuItem Text="Add Server" NavigateUrl="~/AddServers.aspx" /> 
           <asp:MenuItem Text="Edit Server" NavigateUrl="~/EditServer.aspx" /> 
          </asp:MenuItem> 
          <asp:MenuItem NavigateUrl="~/CreateConString.aspx" Text="Environment Password" ToolTip="Change password for connection string" /> 
         </asp:MenuItem> 

        </Items> 
       </asp:Menu> 
       </div> 
      </td> 
     </tr> 
    </table> 

У меня есть 2 вопроса

  1. Я не могу выбрать подменю. они отображаются, но не могут выбрать .it. как только я переместил мышь в подменю, исчезает подменю.
  2. Меню перемещается влево от экрана при максимизации окна. на мыши над событием меню выравнивает правильно

Ниже приведен код, если посмотреть его в IE View Source

<table width="100%" cellpadding="0" cellspacing="0" style="background-color: Black; height: 30px; "> 
     <tr style="background-color: Black; height: 30px;"> 
      <td style="background-color: Black; width: 100%; height: 30px;"> 
      <div style="height:30px"> 
       <a href="#NavigationMenu_SkipLink"><img alt="Skip Navigation Links" src="/FacetsUserSetupApp/WebResource.axd?d=E02KDPXufVQc2nUrHjGfkA2&amp;t=634836496018543211" width="0" height="0" style="border-width:0px;" /></a><div class="menu" id="NavigationMenu"> 
    <ul class="level1"> 
     <li><a title="Home page" class="level1 menuitem" href="Home.aspx">Home</a></li><li><a title="Provide access to users" class="level1 menuitem" href="CommonUser.aspx">Create/Edit User Access</a></li><li><a title="To bulk upload users " class="level1 menuitem" href="BulkUpload.aspx">Bulk Upload</a></li><li><a title="View existing users access" class="level1 menuitem" href="SearchUser.aspx">View/Revoke User Access</a></li><li><a class="popout level1 menuitem" href="javascript:void(0);">Admin</a><ul class="level2"> 
      <li><a title="Create/Edit User for the application" class="popout level2 menuitem" href="javascript:void(0);">User</a><ul class="level3"> 
       <li><a class="level3 menuitem" href="AdminUser.aspx">Create User</a></li><li><a class="level3 menuitem" href="EditAdminUser.aspx">Edit User</a></li> 
      </ul></li><li><a class="popout level2 menuitem" href="javascript:void(0);">Template</a><ul class="level3"> 
       <li><a class="level3 menuitem" href="#" onclick="__doPostBack(&#39;ctl00$NavigationMenu&#39;,&#39;Admin\\Template\\Create Template&#39;)">Create Template</a></li><li><a class="level3 menuitem" href="#" onclick="__doPostBack(&#39;ctl00$NavigationMenu&#39;,&#39;Admin\\Template\\Edit Template&#39;)">Edit Template</a></li> 
      </ul></li><li><a title="Add/Edit server Details" class="popout level2 menuitem" href="javascript:void(0);">Server</a><ul class="level3"> 
       <li><a class="level3 menuitem" href="AddServers.aspx">Add Server</a></li><li><a class="level3 menuitem" href="EditServer.aspx">Edit Server</a></li> 
      </ul></li><li><a title="Change password for connection string" class="level2 menuitem" href="CreateConString.aspx">Environment Password</a></li> 
     </ul></li> 
    </ul> 
</div><a id="NavigationMenu_SkipLink"></a> 
       </div> 
      </td> 
     </tr> 
    </table> 

Я не уверен в том, как использовать RenderingCompatibility свойство для контроля. может кто-нибудь Пожалуйста, помогите мне объявить то же самое для элемента управления меню

+1

Спросите себя ... ДЕЙСТВИТЕЛЬНО нужно поддерживать IE6? –

+0

Можете ли вы проверить источник и посмотреть, как он отображается? Вы используете .NET 4? Я считаю, что рендеринг был изменен из таблиц (.NET 3.5, если я не ошибаюсь) на ul и li (.NET 4). Это может означать проблемы в IE6. – Peter

+0

hi peter Я написал рендеринг кода. Я использую .Net 4 – smv

ответ

1

С каждой версией ASP.NET элемент управления может выводить различные HTML. Обычно это не было слишком большой проблемой, и все версии ASP.NET, похоже, работали с IE6. IE6 был доминирующим браузером при запуске ASP.NET 1 и 1.1 и, возможно, даже когда был выпущен ASP.NET 2.

Но теперь, с ASP.NET 4, Microsoft модернизировала HTML, чтобы больше соответствовать текущим стандартам (меньше таблиц, больше div, ul, li и т. Д.). Это имеет смысл, так как теперь все популярные браузеры поддерживают эти теги для хороших макетов. Даже Internet Explorer, отодвинувшись от IE6.

Это создает проблему обратной совместимости, если вы все еще должны поддерживать IE6, но вам нужны или нужны функции ASP.NET 4 (например, на веб-сайтах интрасети). Итак, Microsoft представила для вас свойство ControlRenderingCompatibilityVersion для web.config и свойство RenderingCompatibility для ваших элементов управления.

Я бы сказал, дайте им идти. Установите свойство RenderingCompatibility вашего меню на версию 3.5 и посмотрите, как это имеет значение.

Существует, однако, случай, чтобы отказаться от поддержки IE6. Даже если ваш клиент по-прежнему использует IE6, как долго он будет длиться? С безопасностью, скоростью, поддержкой и другими последствиями, есть веские причины для обновления браузера.

Смежные вопросы