使用 ajax 动态创建 TABCONTAINER ASP.NET

Posted

技术标签:

【中文标题】使用 ajax 动态创建 TABCONTAINER ASP.NET【英文标题】:Creating TABCONTAINER with ajax dynamically ASP.NET 【发布时间】:2014-01-24 12:24:07 【问题描述】:

在标签容器中,我希望显示包含不同用户控件的各种标签。 我需要通过代码将用户控件分配给选项卡,而不是像通常在标签中那样分配用户控件,例如:

<ajaxToolkit:TabPanel runat="server" HeaderText="NOMBRE" ID="TabPanel1"  Enabled ="true" >
    <ContentTemplate>

    </ContentTemplate>
</ajaxToolkit:TabPanel>

对于我需要的,这不起作用。

所以这是我将标签分配给用户控件的代码,代码如下:

protected void Page_Load(object sender, EventArgs e)

    if (!IsPostBack)
    
         Control ctrlNombre = LoadControl("~/UserCtrl/Nombre.ascx"); //user control
         TabPanel1.Controls.Add(ctrlNombre);  //add user control to tabpanel     
     
 

而“onactivetabchanged”事件我根据哪个选项卡处于活动状态创建了一个菜单,它将加载控件,代码如下:

protected void TabContainer1_ActiveTabChanged(object sender, EventArgs e)

    switch(TabContainer1.ActiveTabIndex)
    
         case 0:
             Control ctrl1 = LoadControl("~/UserCtrl/userControl1.ascx");
             TabPanel1.Controls.Add(ctrlNombre);
             break;
          case 1:
             Control ctrl2 = LoadControl("~/UserCtrl/ userControl2.ascx");
            TabPanel1.Controls.Add(ctrlApPaterno);

    
 

但是,这确实有效,当我从某个用户控件单击某个按钮时会出现问题,这会像往常一样将完整的帖子发回服务器,但是这个帖子会导致之前加载的用户控件消失。我能做些什么来解决这个问题?我真的希望有人能帮助我解决这个问题,我将非常感激。

这是我单击按钮时发生的情况的图像:

非常感谢你们,希望有人能帮我解决这个问题。

【问题讨论】:

【参考方案1】:

当回发发生在 Page_init 中时,您可能需要重新创建标签面板,因为标签面板在回发之前不存在...

所以在 Page_init 中你应该调用一个函数来创建默认选项卡集合,然后在页面上你可以添加一个新的选项卡面板到集合中。

protected void Page_Init(object sender, EventArgs e)

     Control ctrlNombre = LoadControl("~/UserCtrl/Nombre.ascx"); //user control
     TabPanel1.Controls.Add(ctrlNombre);  //add user control to tabpanel   

参考:

http://dorababu-meka.blogspot.com/2012/12/create-dynamical-ajax-tab-and-filling.html http://www.c-sharpcorner.com/uploadfile/Ravish001/create-dynamic-tabs-using-ajax-tab-container-add-controls-read-them-dynamically/

希望这是有道理的。

【讨论】:

我会尝试您提供的任一链接,如果它帮助我解决了这个问题,我会更新您,感谢您编辑我的帖子,非常感谢。

以上是关于使用 ajax 动态创建 TABCONTAINER ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 工具包 TabContainer

覆盖 ASP.NET AJAX 控件工具包的 TabContainer 控件中的默认 CSS

带有 dojo、dgrid、TabContainer 和 JsonRest 的 DOMException

TabContainer 仅在 windowresize 时显示选项卡

Piranha CMS 创建区域扩展

ASP.NET动态增加TabPanel