【发布时间】:2015-05-19 21:28:46
【问题描述】:
我在更新面板中有一个 ajax 选项卡容器,所有选项卡页设置可见,直到您想根据下拉列表选择的值添加选项卡面板 代码:
<cc1:TabContainer ID="tabControlParameters" runat="server" CssClass="ajax__tab_xp"
ScrollBars="Both" ActiveTabIndex="15" UseVerticalStripPlacement="True">
<%--EnvironmentTab --%>
<cc1:TabPanel ID="pnlEnvironment" HeaderText="Environment" runat="server" Visible="false">
<ContentTemplate>
//somecontent
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="pnlDatabase" HeaderText="Environment" runat="server" Visible="false">
<ContentTemplate>
//somecontent
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="pnlFirstError" HeaderText="Environment" runat="server" Visible="false">
<ContentTemplate>
//somecontent
</ContentTemplate>
</cc1:TabPanel>
使用更新面板内的按钮添加,并为其分配了正确的异步触发器。
从 C# 代码隐藏中,我创建了一个循环来检查下拉列表 selectedvalue = panel_headertext 是否使其可见 代码:
protected void btnAddParameters_Click(object sender, EventArgs e)
{
String Parameter = ddlParameterTypes.SelectedValue.ToString();
AjaxControlToolkit.TabContainer container = (AjaxControlToolkit.TabContainer)tabControlParameters;
foreach (object obj in container.Controls)
{
if (obj is AjaxControlToolkit.TabPanel)
{
AjaxControlToolkit.TabPanel tabPanel = (AjaxControlToolkit.TabPanel)obj;
if (tabPanel.HeaderText == ddlParameterTypes.SelectedValue)
{
tabPanel.Visible = true;
tabPanel = tabControlParameters.ActiveTab;
container.ActiveTab = tabPanel;
}
}
}
}
现在,如果 updatepanel 触发器设置为 fullPostback 但它设置为异步回发,则它可以完美地工作,那么即使每次我单击按钮时都会触发事件,它也只能在第一次单击时工作。我在这里遗漏了一些明显的东西吗? 佩塔尔
【问题讨论】:
-
我将代码粘贴到我的 foreach 循环后面,但它什么也没做。尝试将“容器”一词更改为我的 tabcontainerID,但仍然没有变化。我做错了吗?
标签: c# asp.net ajax tabcontainer