Вкладки пользовательского интерфейса jQuery - вкладки скрываются и отображаются в IE при частичной обратной передаче - PullRequest
0 голосов
/ 29 ноября 2011

Я использую вкладки пользовательского интерфейса jQuery с ASP.NET Treeview и Gridview, и он отлично работает в обычных браузерах. Однако с IE происходит следующее.

Моя вкладка выглядит примерно так: enter image description here

Treeview запускает частичную обратную передачу для обновления панели, и в момент обратной передачи вкладки (Дерево и Список) исчезают, поэтому картина выглядит следующим образом: enter image description here

И затем, когда произошла обратная передача, вкладки появляются снова. Таким образом, поскольку высота меняется, кажется, что вся картина «прыгает».

Это происходит в IE7 и IE8.

Кто-нибудь знает, чем это может быть вызвано?

Спасибо!

EDIT Я думал, что мой вопрос может сбить с толку. Вкладки как весь плагин jquery не скрывают и не отображают, проблема касается только части вкладок header .

EDIT2 Вот разметка и код:

<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all" >

    <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
        <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#treeV" >Tree</a></li>
        <li class="ui-state-default ui-corner-top"><a href="#listV" >List</a></li>
    </ul>


    <div id="common" class="listTree">
        <div id="treeV" class="ui-tabs-panel ui-widget-content ui-corner-bottom" >
            <asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_OnSelectedNodeChanged" />
        </div>  

       <div id="listV" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"> 
        <asp:GridView ID="GridView1" runat="server" onselectedindexchanged="GridView1_SelectedIndexChanged" />
       </div></div></div>

<script type="text/javascript">

    function pageLoad() {
         $("#tabs").tabs({
             fx: { opacity: "toggle", duration: "slow" }
    });}

</script>

1 Ответ

1 голос
/ 29 ноября 2011

Добавьте клиентскую функцию pageLoad и переместите к ней код инициализации ваших вкладок. Кроме того, вам не нужно явно вызывать эту функцию. Или подпишитесь на событие Sys.WebForms.PageRequestManager endRequest и обновите вкладки в этом обработчике события в дополнение к коду, выполненному в $ (document) .ready.

...