2015-05-19 3 views
0

У меня есть АЯКС TabContainer в качестве UpdatePanel со всем tabpages установить видимым, пока вы не хотите, чтобы добавить tabpanel на основе DropDownList выбранного значения КОДА:ASP UpdatePanel не обновляется Аякс TabPage

<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> 

С помощью кнопки добавить, которая находится внутри Updatepanel, и имеет соответствующий асинхронный триггер, назначенный ей.

От C# коде я сделал петлю, чтобы проверить, если DropDownList 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, но это установите для async postback, тогда он работает только при первом щелчке, даже если событие запускается каждый раз, когда я нажимаю кнопку. Я пропустил что-то очевидное здесь? Petar

+0

Посмотрите на мой старый ответ [здесь] (http://stackoverflow.com/questions/6029648/ajax-tookit-tabpanel-invisible-tag-bug), возможно, это связано и полезно. Джерри Вэн предоставил версию C# [здесь] (http://forums.asp.net/t/1620618.aspx). Я не знаю, исправлена ​​ли ошибка. –

+0

Я вставил код за мой цикл foreach, но ничего не сделал. Попробовал сменить слово «контейнер» на мой tabcontainerID и до сих пор не изменился. Я делаю что-то неправильно? – Petar

ответ

0

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

+0

О, хорошо, ну, заголовок в действительном коде правильный, я просто взял первую вкладку, удалил содержимое и скопировал его в 3 раза: p – Petar

Смежные вопросы