Ajax选项卡容器显示不正确的文本

时间:2013-10-14 22:08:00

标签: c# html asp.net ajax tabs

我的网站上有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个动态加载的选项卡)现在。

2 个答案:

答案 0 :(得分:0)

真正需要在第一个位置制作动态创建的标签吗? 。因为它只是继承了以前存在的选项卡中的内容

答案 1 :(得分:0)

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

jQuery(document).ready(function () {
    jQuery(".ajax__tab_panel").hide();
});