2012-04-04 8 views
0

私は2つのユーザコントロールA、BをロードしているTelerik Radタブストリップコントロールを使用しています。ユーザコントロールAから、ユーザコントロールBにロードまたはコールまたはリダイレクトしたいいくつかのクエリ文字列パラメータを使用します。RadTabStrip内の別のユーザコントロールからユーザコントロールをロード

どうすればいいですか?

以下

は、マークアップです:

<telerik:radtabstrip id="RadTabStrip1" runat="server" skin="Black" 
multipageid="rmpProgressReports" selectedindex="0" cssclass="tabStrip" OnTabClick="RadTabStrip1_TabClick"> 
      <Tabs> 
       <telerik:RadTab Text="DASHBOARD" PageViewID="rpvDashBoard" TabIndex="0" Selected="True" SelectedCssClass="SelectedTab"> 
       </telerik:RadTab> 
       <telerik:RadTab Text="REPORT DETAILS" PageViewID="rpvReportDetails" TabIndex="1" SelectedCssClass="SelectedTab"> 
       </telerik:RadTab> 
      </Tabs> 
     </telerik:radtabstrip> 
<telerik:radmultipage id="rmpProgressReports" runat="server" selectedindex="0"> 
      <telerik:RadPageView ID="rpvDashBoard" runat="server" TabIndex="0"> 
      <uc1:PRDashBoards ID="PRDashBoards" runat="server" /> 
      </telerik:RadPageView> 
      <telerik:RadPageView ID="rpvReportDetails" runat="server" TabIndex="1"> 
      <uc2:PRDetails ID="PRDetails" runat="server" /> 
      </telerik:RadPageView> 
     </telerik:radmultipage> 

答えて

2

[編集を開始]

あなたの主な制御では、イベントハンドラを作ることができます。そのイベントハンドラを主コントロールから実行する場合(ボタンをクリックするなど)、送信ページでコードを実行します。

カスタムイベントハンドラ

public delegate void ControlChangedEventHandler(string QueryString); 

はその後、私の2番目のコントロールには、変更のための公共のEventHandler delcare宣言します。OnControlChangedかどうかをチェックし、あなたのコントロールの提出に続いて

public ControlChangedEventHandler OnControlChanged; 

を設定されて実行されます。あなたのメインコントロールで今

if (OnControlChanged != null) 
    { 
     OnControlChanged(QueryStringParameter); 
    } 

public void OnControlChanged(string QueryString) 
{ 
    RadTabStrip1.SelectedIndex = 1; 
    rmpProgressReports.SelectedIndex = 1; 
    PRDetails.LoadFromQuery(QueryString); 
} 

仕事を処理して、ユーザーコントロールのためのOnAddressChangedのイベントハンドラとしてその機能を割り当てるための関数を作成します。

PRDashBoards.OnControlChanged += new ControlChangedEventHandler(OnControlChanged); 

[タブをクリックに基づいて古い答え]

あなたはOnTabClick機能が起動できるようにするためにTrueにRadTabStripのAutoPostBackプロパティを設定することができます。

OnTabClick関数の内部から、UserControlのパブリックプロパティまたは関数にアクセスして、それにデータを渡すことができます。たとえば、パブリック関数を作成してパラメータに基づいてデータをリバウンドさせることができます。例:

protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e) 
{ 
    if (e.Tab.TabIndex == 0) 
    { 
     PRDashBoards.DoSomething(); 
    } 
    else if (e.Tab.TabIndex == 1) 
    { 
     PRDetails.DoSomethingElse(); 
    } 
} 
+0

私の場合は、RadTabStrip1_TabClickを使用することはできません。ユーザーコントロールAにはグリッドがあり、グリッドビューでクリックすると、クエリ文字列のパラメータを使用してユーザーコントロールBにロードまたはコールまたはリダイレクトします。 – msbyuva

+0

コメントがコメントのようにあなたの最後にも編集にタグを付けるかどうかはわかりませんが、あなたのためにはうまくいくはずのソリューションで編集しました。 – nurgent

+0

ありがとうございました..私は必要なものを手に入れました。 – msbyuva

関連する問題