使用AJAX动态ASP.NET创建TabContainer的

问题描述 投票:1回答:1

在一个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);

    }
 }

然而,这实际上做的工作,当我从一些用户控件中单击某个按钮时出现问题,这使得一个完整的回发到服务器,因为它通常会做,但是这回发会导致用户控制以前加载消失。我能做些什么来解决这个问题?我真的希望有人会帮助我在这一个,我会很感激。

下面是当我点击一个按钮,会发生什么情况的图像:

谢谢你这么多,大家好,我希望有人能帮助我解决这个问题。

c# asp.net tabcontrol tabpanel tabcontainer
1个回答
0
投票

您可能需要在回发的Page_init时重新创建标签面板,因为他们已经做出,直到不上后背上存在tabpanels ...

所以在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/

希望这是有道理的。

© www.soinside.com 2019 - 2024. All rights reserved.