[英]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.