Как сделать так, чтобы вкладки Telerik TabStrip сохранялись между запросами страниц? - PullRequest
8 голосов
/ 27 августа 2010

в Telerik ASP.NET MVC TabStrip, я хочу, чтобы страница запоминала, какая вкладка была выбрана последней, и сохраняла выбор посредством нескольких запросов страницы.У меня есть частичное представление, которое отображается на нескольких страницах и содержит вкладку TabStrip.С SelectedIndex вкладка set всегда выбирается, что сводит на нет выбор пользователя.

1 Ответ

6 голосов
/ 27 августа 2010

Я не смог найти ни одного официального способа сделать это через API Telerik, ни каких-либо полезных советов на их форуме, поэтому я решил пойти своим путем с использованием:

  1. Html.Telerik (). TabStrip (). ClientEvents () и OnSelect () и OnLoad ()
  2. Плагин cookie для jQuery

Затем я подключил их, как показано ниже, в частичном представлении, содержащем TabStrip.

.ClientEvents(events => events
.OnSelect(() =>
{ 
    %>
    function(e) {
        var item = $(e.item);
        $.cookie('selectedTabIndex', item.index(), { path: '/' });
    }
    <%
})
.OnLoad(() =>
{ 
    %>
    function(e) {
        var tabStrip = $("#TabStrip").data("tTabStrip");
        var index = $.cookie('selectedTabIndex');
        var domElement = $("li", tabStrip.element)[index];
        tabStrip.select(domElement);
    }
    <%
})

)

Изменить: я понял, что мой ответ немного не хватает объяснения, поэтому я добавил:

В случае, если это не очевидно, OnSelect захватывает индекс выбранного вкладка при ее выборе и записи что в печенье называется selectedTabIndex. Путь в настоящее время установить так, чтобы он охватил весь наш сайт, но если вы оставите это, создать новый файл cookie для каждого отдельного путь (который может быть вашим желаемым поведение). Кто-то более знаком с плагин jQuery cookie, пожалуйста поправь меня если я не прав там я Я не использовал это много.

Затем в OnLoad он выполняет напротив, в основном. Находит tabStrip, получает индекс из cookie, затем получает элемент вкладка по индексу из куки и говорит tabStrip, чтобы выбрать, что DOMElement.

Похоже, это хорошо работает в Chrome и IE, но в FFox 3 могут быть некоторые причуды.

Я надеюсь, что команда Telerik рассмотрит возможность добавления этого в свой API, так как мне кажется, что это довольно полезная функция для включения. Извините, если это уже так, но я не смог найти его в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...