2010-09-15 89 views
17

我使用jQuery選項卡和ASP.NET列表視圖來顯示和編輯一些信息。我的問題是,當用戶在一個列表視圖項中插入一條新記錄時,我的jQuery選項卡會返回到第一個選項卡。有沒有一種方法可以跟蹤我正在使用哪個標籤,或者不讓它在郵寄後休息?保留在當前jQuery選項卡跨後發佈?

+0

我怎樣才能實現這個我的代碼,請.. https://開頭計算器。com/q/48215218/4233410 – 2018-01-12 09:57:54

回答

29

在asp.net你可以在一個隱藏字段將其存儲,而無需使用Cookie(不需要jQuery的餅乾參考)。

使用此:

$(function() { 
    $("#tabs").tabs({ 
     activate: function() { 
      var selectedTab = $('#tabs').tabs('option', 'active'); 
      $("#<%= hdnSelectedTab.ClientID %>").val(selectedTab); 
      }, 
     active: <%= hdnSelectedTab.Value %> 
    }); 
}); 

然後在身體裏,聲明你的隱藏選項卡字段:

<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" /> 

基本上,在標籤的選擇要存儲隱藏在ASP中選擇標籤值領域。然後顯示你正在檢索的價值。

+1

僅供參考,在較新版本的jQuery UI中,'show' /'selected'不再適用。相反,使用'activate'和'active'。 – 2014-01-15 04:11:11

+2

更好地用active:$(「#<%= hdnSelectedTab.ClientID%>」)。val()替換代碼:active:<%= hdnSelectedTab.Value%>。否則在使用UpdatePanel時會遇到問題。 – ZooZ 2015-01-27 11:39:44

+1

用'選項','活動'和使用活動:'(「#<%= hdnSelectedTab.ClientID%>」)。val(),如@ZooZ所述, 。 – 2015-06-12 14:27:11

0

你可以通過這樣獲得當前標籤:

var selected = $tabs.tabs('option', 'selected'); 

然後,您可以這樣選擇選項卡(POST完成時):

$tabs.tabs('select', selected); 

注意選項卡選擇基於0的索引,因此選擇2表示選擇第三個選項卡。

0

我不是一個.NET傢伙,但你可能會鉤住表單的submit()事件,並使用表單數據將當前活動的選項卡發送到服務器。用這種方式,當你真正生成DOM和JS時,你可以簡單地在服務器端選擇適當的選項卡。

喜歡的東西...

$("#the_form").submit(function(){ 
    var $form   = $(this); 
     selected_tab_idx = $("#the_tabs").tabs("option", "selected"); 
    $('<input />', {type: hidden, name: 'tab_index', value: selected_tab_idx}).appendTo($form); 
    return true; 
}); 
29

使用jQuery和jQuery UI的新版本,這將是:

$(function() { 
     $("#tabs").tabs({ 
      activate: function() { 
       var selectedTab = $('#tabs').tabs('option', 'active'); 
       $("#<%= hdnSelectedTab.ClientID %>").val(selectedTab); 
      }, 
      active: document.getElementById('<%= hdnSelectedTab.ClientID %>').value 
     }); 
    }); 

的「選擇」選項「活躍」取代...... Ofcourse你仍然需要添加隱藏字段:

<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" /> 
+3

這對我有用(jQuery-UI v1.10.2) – mghaoui 2013-05-30 07:52:54

+0

這對我很好用 – JIKKU 2014-02-12 07:10:35

+0

爲我工作(查詢v1.9.0) – Bachask8 2014-05-15 15:02:15

1

該解決方案爲我工作:源http://saradesh.com/tajuddin/index.php/keep-the-selected-jquery-tab-active-on-partial-post-back-in-asp-net/

<script type="text/javascript"> 
     var selTab; 
     $(function() { 
      var tabs = $("#tabs").tabs({ 
       show: function() { 
        //get the selected tab index 
        selTab = $('#tabs').tabs('option', 'selected'); 

       } 
      }); 

     }); 

    function pageLoad(sender, args) { 

     if (args.get_isPartialLoad()) { 

      $("#tabs").tabs({show: function() { 
        //get the selected tab index on partial postback 
        selTab = $('#tabs').tabs('option', 'selected'); 

       }, selected: selTab }); 

     } 
    }; 

    </script> 
2

嘗試這樣的:

添加到頁面:

<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" /> 

添加到腳本:

$(function() { 
    var activeIndex = parseInt($get("hdnSelectedTab").value); 
    $("#tabs").tabs({ 
     active: activeIndex, 
     activate: function (event, ui) { 
      $get("hdnSelectedTab").value = ui.newTab.index(); 
     } 
    }); 
}); 
+0

我認爲使用$(「#<%= hdnSelectedTab.ClientID%>」)更好 – 2016-12-03 00:02:27

相關問題