2012-03-08 22 views
0

私はAJAX TabContainerを使用し、いくつかのタブパネルを持つウェブサイトを持っています。各タブパネルは、顧客コントロールに多数のコントロールが含まれています。私は、サーバー側のボタンクリックイベントが実行されるたびに、アクティブなタブを設定する必要があります。カスタムコントロールのC#コードの背後にあるTabContainerにどうやってアクセスすればいいですか?アクティブなタブが変更されるたびに、それは新しく選択されたための情報をロードするためのタブパネルが変更される前に、サーバー側のコードがSaveDataを機能を実行することが必要であるAJAXタブコントロールのアクティブタブを設定する

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

私のマークアップは、このように構成されています前のタブパネルに保存されなかった情報が失われます。

サーバーサイドのSaveData関数を実行し、アクティブなタブを変更するTabRootにアクセスするにはどうすればよいですか?現在、私はアクティブなタブを設定するために、(SaveボタンのOnClientClickで)javascript関数を使用していましたが、サーバー側のSaveData関数の前に実行されています。これはIE9のユーザーにとっては問題ではないようです。

答えて

1

はこのようにしようとすると、この例Ajax Control toolkit

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

カスタムコントロールのC#コードの背後にあるRootTabコントロールにアクセスできません。 – Encryption

0

があなたのボタンのポストバックイベント内のタブのActiveIndexを設定してみてください参照してください。

+0

カスタムコントロールのC#コードの背後にあるRootTabコントロールにアクセスできません。 – Encryption

関連する問題