繁体   English   中英

使用 ajax 动态创建 TABCONTAINER ASP.NET

[英]Creating TABCONTAINER with ajax dynamically ASP.NET

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

<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);

    }
 }

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

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

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

当在 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/

希望这是有道理的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM