Staying on current jQuery tab across post back?
There's built-in support for the jQuery cookie plugin (direct download). You use it like this:
$("#tabs").tabs({
cookie: { expires: 7 } //1 week
});
It's not the same as maintaining across postback, but it usually provides the desired effect.
With newer versions of jQuery and jQuery UI, this will be:
$(function () {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: document.getElementById('<%= hdnSelectedTab.ClientID %>').value
});
});
The 'selected' option is replaced by 'active'... Of course you will still need to add the hidden field:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
In ASP.NET, you can store it in a hidden field without having to use a cookie (no need for the jQuery cookie reference).
Use this:
$(function () {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: <%= hdnSelectedTab.Value %>
});
});
Then in the body, declare your hidden tab field:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
Basically, on selection of a tab you are storing the selected tabs value in the asp hidden field. Then on show you are retrieving the value.