2016-01-20 2 views
1

У меня есть простой Aspx страницы, как это:ASP.NET JQuery меню мигает на постбэка

<!-- Other code --> 
<script> 
    $(function() { 
     $("#menu").menu(); 
    }); 
</script> 
<ul class="menu"> 
    <li>Action1 
     <ul> 
      <li>Action1-1</li> 
      <li>Action1-2</li> 
     </ul> 
    </li> 
</ul> 
<asp:LinkButton ID="LinkButton1" runat="server" Text="Button" /> 
<!-- Other code --> 

Когда LinkButton щелкают (PostBack), страница мигает IE11, Chrome , Опера. В то же время в Firefox все в порядке.

Похоже, что он отображает UL на странице в виде списка, а затем делает его как меню, а первый шаг отображается в браузере.

Помогите решить эту проблему, потому что на странице есть много действий PostBack.

ответ

1

Как уже упоминалось, ASP.Net LinkButton делает постбэк , Затем он перезагружает всю страницу с сервера, чтобы ваше меню было перезагружено, и вы увидите, что страница перерисована.

Вы можете разместить нестатический контент внутри UpdatePanel, чтобы загружать только этот раздел страницы.

<!-- Other code --> 
<script> 
    $(function() { 
     $("#menu").menu(); 
    }); 
</script> 
<ul class="menu"> 
    <li>Action1 
     <ul> 
      <li>Action1-1</li> 
      <li>Action1-2</li> 
     </ul> 
    </li> 
</ul> 
<asp:UpdatePanel> 
    <asp:LinkButton ID="LinkButton1" runat="server" Text="Button" /> 
    <!-- Other code --> 
</asp:UpdatePanel> 

Чтобы использовать UpdatePanel, вам нужно будет включать в себя ScriptManager, вероятно, в вашей главной странице. Быстрый поиск UpdatePanel должен предоставить вам информацию, необходимую для ее реализации.

0

Попробуйте установить для всех элементов на ул второго и других уровней для отображения: ни один и добавьте следующие строки в строке инициализации:

$(function() { 
    $('.menu').menu(); 
    $('.menu li ul').show(); 
}); 
0

После установки:

<ul class="menu ui-menu ui-widget ui-widget-content"> 
    <li>Action1 
     <ul style="display: none"> 
      <li>Action1-1</li> 
      <li>Action1-2</li> 
     </ul> 
    </li> 
</ul> 

моргание стал не так раздражает.

Но это не мешает мигать. Проблема может быть решена UpdatePanel, но это не подходит для меня по некоторым причинам