【问题标题】:How can I make Telerik TabStrip tabs persist between page requests?如何使 Telerik TabStrip 选项卡在页面请求之间持续存在?
【发布时间】:2011-04-04 15:54:45
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc telerik


    【解决方案1】:

    我无法通过 Telerik API 找到任何官方的方法,在他们的论坛上也找不到任何有用的建议,所以我决定用我自己的方式使用:

    1. Html.Telerik().TabStrip().ClientEvents() OnSelect() 和 OnLoad()
    2. The cookie plugin for 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 正在捕获选定的索引 选择并写入时的选项卡 那个叫做 cookie 选定的标签索引。路径正在 设置为覆盖我们的整个网站, 但如果你把它排除在外,它会 为每个不同的创建一个新的 cookie 路径(这可能是您想要的 行为)。比较熟悉的人 请 jQuery cookie 插件 如果我错了,请纠正我,我 没怎么用过。

    然后在 OnLoad 中它正在执行 基本上相反。它发现 tabStrip,从 cookie,然后获取 domElement cookie 中索引处的选项卡 并告诉 tabStrip 选择那个 domElement。

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

    我希望 Telerik 团队考虑将其添加到他们的 API 中,因为我觉得它是一个非常有用的功能,已经融入其中。抱歉,如果它已经存在,但我在文档中找不到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      相关资源
      最近更新 更多