如何在页面请求之间保持Telerik TabStrip选项卡?

时间:2010-08-27 06:54:52

标签: asp.net-mvc telerik

在Telerik ASP.NET MVC TabStrip中,我希望页面能够记住最后选择的选项卡,并通过多个页面请求保留选择。 我所拥有的是一个部分视图,显示在多个页面中,它包含TabStrip。使用SelectedIndex,设置选项卡始终被选中,这将使用户的选择无效。

1 个答案:

答案 0 :(得分:6)

我找不到通过Telerik API执行此操作的任何官方方式,也没有在他们的论坛上找到任何有用的建议,所以我决定按照自己的方式使用:

  1. Html.Telerik()。TabStrip()。ClientEvents()OnSelect()和OnLoad()
  2. The cookie plugin for jQuery
  3. 然后我在包含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   正在捕获所选的索引   选择和写入时的选项卡   那个叫做的cookie   selectedTabIndex。道路正在发生   设置所以它将覆盖我们的整个网站,   但如果你把它留下来就会   为每个不同的人创建一个新的cookie   路径(这可能是你想要的   行为)。有人比较熟悉   请使用jQuery cookie插件   如果我错了,请纠正我,我   没用多少。

         

    然后在OnLoad中它正在做   相反,基本上。它找到了   tabStrip,从中获取索引   cookie,然后得到domElement   来自cookie的索引处的选项卡   并告诉tabStrip选择它   一个DOMElement。

    这似乎在Chrome和IE中运行良好,但在FFox 3中可能存在一些怪癖。

    我希望Telerik团队考虑将其添加到他们的API中,因为这对我来说是一个非常有用的功能。如果已经道歉,但我在文档中找不到它。