2010-08-27 24 views
8

trong Telerik ASP.NET MVC TabStrip, tôi muốn trang nhớ tab nào được chọn cuối cùng và tiếp tục lựa chọn thông qua nhiều yêu cầu trang. Những gì tôi có là một phần xem hiển thị trong nhiều trang và nó chứa TabStrip. Với SelectedIndex, tab thiết lập luôn được chọn, điều này sẽ vô hiệu hóa lựa chọn của người dùng.Làm cách nào để các tab Taber của Telerik tồn tại giữa các yêu cầu trang?

Trả lời

6

tôi không thể tìm thấy bất kỳ cách chính thức để làm điều này thông qua các API Telerik, hay bất kỳ lời khuyên hữu ích trên diễn đàn của họ, vì vậy tôi quyết định đi theo cách của riêng tôi với việc sử dụng:

  1. Html. Telerik(). Tabstrip(). ClientEvents() cả OnSelect() và onload()
  2. The cookie plugin for jQuery

sau đó, tôi có dây chúng như dưới đây, trong giao diện phần có chứa các thanh tab.

.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); 
    } 
    <% 
}) 

)

Edit: Tôi nhận ra rằng câu trả lời của tôi là một chút thiếu lời giải thích vì vậy tôi đã thêm:

Trong trường hợp đó là không rõ ràng, các OnSelect là chụp chỉ mục của tab được chọn khi được chọn và viết vào cookie được gọi là selectedTabIndex. Đường dẫn đang được đặt là để nó sẽ bao phủ toàn bộ trang web của chúng tôi, nhưng nếu bạn để nó ra thì sẽ tạo cookie mới cho mỗi đường dẫn khác nhau (có thể là hành vi mong muốn của bạn). Ai đó quen thuộc hơn với plugin cookie jQuery, vui lòng sửa tôi nếu tôi sai ở đó, tôi chưa sử dụng nhiều.

Sau đó, trong Tải trước, điều này thực chất là đối nghịch với số . Nó tìm thấy tabtabStrip, nhận chỉ mục từ cookie , sau đó nhận được quyền sở hữu số tab tại chỉ mục từ cookie và thông báo cho tabStrip để chọn domElement.

Điều này có vẻ làm việc khá tốt trong Chrome và IE, nhưng có thể có một số tật trong FFox 3.

Tôi hy vọng đội Telerik xem xét thêm này để API của họ, vì nó đập vào mắt tôi như là một tính năng khá hữu ích để có tính năng nướng. Xin lỗi nếu nó đã được, nhưng tôi không thể tìm thấy nó trong các tài liệu.

Các vấn đề liên quan