Encryption
Encryption

Reputation: 1897

Set Active Tab for AJAX Tab Control

I have a website that uses the AJAX TabContainer and has several tab panels. Each tab panel consists of a customer user control with many controls on it. I need to be able to set the active tab whenever server-side button click event is executed. How would I go about accessing the TabContainer from the custom controls C# code behind?

My markup is structured like this:

<cc1:TabContainer ID="TabRoot" runat="server" Width="100%" CssClass="ajax__tab_yuitabview-theme" onActiveTabChanged="TabRoot_ActiveTabChanged" 
    OnClientActiveTabChanged="SetIndex" ActiveTabIndex="0" AutoPostBack="True">
      <cc1:TabPanel ID="TabPatientRoot" runat="server" HeaderText="Patient">
        <ContentTemplate>
              <custom:Patient ID="PatientInfo" runat="server" Visible="False"></custom:Patient>
        </ContentTemplate>
      </cc1:TabPanel>
</cc1:TabContainer>

It is necessary that the server side codes executes a SaveData function before the tab panel is changed because whenever the active tab changes it loads the information for the newly selected tab panel, thus losing any information that wasn't saved on the previous tab panel.

How can I accomplish executing the server side SaveData function, and then have access to TabRoot to change the active tab? Currently I was using a javascript function (in the OnClientClick for the save button) to set the active tab but it is being executed before the server-side SaveData function. This seems to be a problem for users in IE9, only.

Upvotes: 1

Views: 8668

Answers (2)

Zo Has
Zo Has

Reputation: 13018

Try setting ActiveIndex of tab inside your button postback event.

Upvotes: 0

Ravi Gadag
Ravi Gadag

Reputation: 15861

try like this and refer this examples Ajax Control toolkit

TabRoot.ActiveTabIndex = 0;  // set your active tab index to display. 

Upvotes: 2

Related Questions