【问题标题】:ASP updatepanel doesn't refresh ajax tabpageASP updatepanel 不刷新 ajax 标签页
【发布时间】: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 但它设置为异步回发,则它可以完美地工作,那么即使每次我单击按钮时都会触发事件,它也只能在第一次单击时工作。我在这里遗漏了一些明显的东西吗? 佩塔尔

【问题讨论】:

  • 看看我的旧答案here,也许它是相关且有用的。 Jerry Weng 提供了一个 C# 版本here。我不知道该错误是否同时修复。
  • 我将代码粘贴到我的 foreach 循环后面,但它什么也没做。尝试将“容器”一词更改为我的 tabcontainerID,但仍然没有变化。我做错了吗?

标签: c# asp.net ajax tabcontainer


【解决方案1】:

对于每个 TabPanel,您在 HeaderText 中具有相同的值。如果您更正 HeaderText 属性,我认为它会起作用。

【讨论】:

  • 哦,对了,实际代码中的headertext是正确的,我只是拿了第一个标签页,删除了内容并复制粘贴了3次:p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2015-03-29
相关资源
最近更新 更多