Подтвердить что ты не робот

Пребывание на текущей вкладке jQuery через сообщение назад?

Я использую вкладки jQuery и список ASP.NET для отображения и редактирования некоторой информации. Моя проблема в том, что когда пользователь вставляет новую запись в один из элементов списка, мои вкладки jQuery возвращаются к первой вкладке. Есть ли способ отслеживать, на какой вкладке я нахожусь, или не дать ей отдохнуть после сообщения?

4b9b3361

Ответ 1

В ASP.NET вы можете хранить его в скрытом поле, не используя cookie (нет необходимости в ссылке на jQuery cookie).

Использовать этот:

$(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. Затем на шоу вы получаете значение.

Ответ 2

В более новых версиях jQuery и jQuery UI это будет:

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

Опция 'selected' заменяется на 'active'... Конечно, вам все равно нужно добавить скрытое поле:

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

Ответ 4

Попробуйте следующее:

Добавить на страницу:

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

Добавьте к script:

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

Ответ 5

Это решение сработало для меня: Source 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>

Ответ 6

Вы можете получить текущую вкладку, выполнив следующее:

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

Затем вы можете выбрать вкладку (после завершения POST), выполнив следующее:

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

Обратите внимание, что выбор табуляции - это индексирование на основе 0, поэтому выбор 2 означает выбор третьей вкладки.

Ответ 7

Я не парень .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;
});