Zurb foundation 5.2 -在回发时维护TAB选择/状态

zurb foundation 5.2 - maintain tab selection / state on postabck

本文关键字:维护 TAB 选择 状态 foundation Zurb      更新时间:2023-09-26

我有一个asp.net项目,我使用的基础5.2.2前端。我有一个具有基础选项卡的页面,我想在回发时保持所选选项卡的状态。选项卡位于AJAX面板内,我为选项卡提供了服务器ID,以便页面更改ID名称。这允许我,在理论上,从事件背后的asp.net代码分配选定的选项卡,如果我需要。

全面披露,我很少使用JS,所以请原谅我。

我以以下方式绑定到选项卡事件的基础回调(在这里的基础文档中概述):

function pageLoad(sender, args) { 
    $(document).foundation({
        tab: {
            callback: function (tab) {
                var selectedTab = $('#tabs').tabs('option', 'active');
                $("#<%=currentTab.ClientID%>").val(selectedTab);
            }               
        }
    });       
}

我需要使用pageload事件,因为pageload在每次回发后执行,无论是同步的还是异步的。另外,pagload是ASP中保留的函数名。. NET AJAX

我的想法是在页面上放置一个隐藏字段来保存当前选项卡的选择:

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

但是当回调发生时,所选择的选项卡id不会分配给隐藏字段,而是分配以下内容:

(对象对象)

<input type="hidden" name="dnn$ctr2601$StoreManagement$currentTab" id="dnn_ctr2601_StoreManagement_currentTab" value="[object Object]">

我需要一些帮助从这里,我如何得到选定的标签ID或值,然后我如何重新分配这个值?

任何帮助都是感激的。

我知道这个问题Zurb-Foundation维护标签状态,但它使用较旧版本的foundation,我想使用内置的回调

标签的HTML

<div class="row">
    <div class="large-12 columns">
        <asp:HiddenField runat="server" ID="currentTab" Value="0" />
        <dl class="tabs" id="MyTabs" data-tab>
            <dd id="Tab2" runat="server" class="active">
                <asp:HyperLink runat="server" ID="Tab2Link">Categories</asp:HyperLink></dd>
            <dd id="Tab3" runat="server">
                <asp:HyperLink runat="server" ID="Tab3Link">Status</asp:HyperLink></dd>
            <dd id="Tab4" runat="server">
                <asp:HyperLink runat="server" ID="Tab4Link">Specifications</asp:HyperLink></dd>
            <dd id="Tab5" runat="server">
                <asp:HyperLink runat="server" ID="Tab5Link">Manufacturers</asp:HyperLink></dd>
            <dd id="Tab6" runat="server">
                <asp:HyperLink runat="server" ID="Tab6Link">Suppliers</asp:HyperLink></dd>
            <dd id="Tab1" runat="server">
                <asp:HyperLink runat="server" ID="Tab1Link">Terms</asp:HyperLink></dd>
        </dl>
        <div class="tabs-content">
            <div class="content active" id="panel2" runat="server">
                ...Tab content
            </div>
            <div class="content" id="panel3" runat="server">
                ...Tab content
            </div>
            <div class="content" id="panel4" runat="server">
                ...Tab content
            </div>
            <div class="content" id="panel5" runat="server">
                ...Tab content
            </div>
            <div class="content" id="panel6" runat="server">
                ...Tab content
            </div>
            <div class="content" id="panel1" runat="server">
                ...Tab content
            </div>
        </div>
    </div>
</div>

选项卡中的超链接在asp.net页面后面的代码中设置了它的href属性-它获得面板的客户端并在前面加上#。选项卡工作和切换很好,我只需要维护跨回发的安全性。

如果您将data-options="deep_linking: true"添加到类似的内容中:

<dl class="tabs" id="MyTabs" data-tab data-options="deep_linking: true">

它将TAB面板id添加到选项卡拾取的窗口散列中,因此在回发时读取url并使用散列重新分配所选的最后一个选项卡。

比javascript解决方案简单得多。

注意:

如果从data-options中删除deep_linking选项

这将不起作用