0

我的网站上有一个ajaxToolKit:TabContainer。我有三个选项卡,每个选项卡都Product以某种形式填充(描述、附加信息、评论)。我还有其他三个动态创建的选项卡,如果产品符合某些条件,它们会加载到选项卡容器中。但是,当我加载这三个动态选项卡时,我遇到了问题。

当我加载选项卡时,选项卡中的文本会Description显示在所有其他选项卡中,直到我单击Description选项卡,然后它会从所有其他选项卡中消失。

它发生在我真正关心的所有浏览器(Chrome、IE、FF)中。当html您查看源代码时,标记的文本正确divtab panel但由于某种原因显示不正确。

以下是我如何在后面的代码中加载控件并将它们添加到容器中:

            TabPanel overviewTab = new TabPanel();

            ProductOverviewInfo control = (ProductOverviewInfo)Page.LoadControl("~/Controls/ProductOverviewInfo.ascx");
            control.overview_populate();

            overviewTab.Controls.Add(control);
            overviewTab.HeaderText = "OVERVIEW";
            ProductTabs.Controls.AddAt(firstVisibleTab, overviewTab);

firstVisibleTab只是一个 int 值,决定我要在哪里插入选项卡。

现在,我找到了解决这个问题的方法,但这不是我想要的,也不是我的项目发起人想要的。如果我只是使用ProductTabs.Control.Add(tab),那么我没有问题。但是,如果产品符合具有概览选项卡(上面的代码)的标准,我希望该选项卡处于活动状态。

现在,您可能会问,为什么不直接使用.Add(tab)然后ActiveTabIndex在插入新选项卡的位置使用。好吧,我试过了,但由于某种原因,当我进行检查(或直接将其添加到上面的代码中)时,整体TabContainer根本不会显示。

因此,在我使用的大约一半产品中,我遇到了此文本显示在错误选项卡中的问题,另一半没有问题,因为没有概览选项卡(或其他 2 个动态加载的选项卡)存在。

4

2 回答 2

0

真的需要在第一个位置动态创建选项卡吗?. 因为它只是从先前存在的选项卡中继承内容

于 2013-10-22T08:45:09.033 回答
0

使用 jquery hack 隐藏选项卡面板。面板的本机 javascript 使其再次显示。不是最干净的,但它适用于我想做的事情。

jQuery(document).ready(function () {
    jQuery(".ajax__tab_panel").hide();
});
于 2013-10-28T21:39:22.150 回答