ASP updatepanel не обновляет вкладку ajax

У меня есть ajax tabcontainer в панели обновления со всеми установленными вкладками, видимыми, пока вы не захотите добавить панель вкладок в соответствии с выбранным значением выпадающего списка CODE:

<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# codebehind я сделал цикл, чтобы проверить, если выпадающий список selectedvalue = panel_headertext, если это так, сделать его видимым CODE:

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;

                }   
            }   
        }
    }

Теперь это работает отлично, если триггер панели обновления установлен на fullPostback, но установлен асинхронный обратный вызов, тогда он работает только при первом щелчке, даже если событие срабатывает каждый раз, когда я нажимаю на кнопку. Я что-то упускаю здесь очевидное? Петар

1 ответ

У вас есть одинаковое значение в HeaderText для каждого из ваших TabPanels. Я думаю, что это будет работать, если вы исправите атрибуты HeaderText.

Другие вопросы по тегам