0

私は Telerik Rad タブストリップ コントロールを使用しており、そこで 2 つのユーザー コントロール A、B をロードしています。今、ユーザー コントロール A から、いくつかのクエリ文字列パラメーターを使用してユーザー コントロール B をロード、呼び出し、またはリダイレクトしたいと考えています。

どうすればできますか?

以下はマークアップです。

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

1 に答える 1

2

【編集開始】

プライマリ コントロールで、イベント ハンドラーを作成できます。プライマリ コントロールからそのイベント ハンドラーを実行する場合 (たとえば、ボタンのクリック時)、送信ページでコードが実行されます。

カスタム イベント ハンドラを宣言する

public delegate void ControlChangedEventHandler(string QueryString);

次に、2 番目のコントロールで、変更のパブリック イベントハンドラーを decare します。

public ControlChangedEventHandler OnControlChanged;   

次に、コントロールの送信時に、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);

[タブのクリックに基づく古い回答]

RadTabStrip の AutoPostBack プロパティを True に設定して、OnTabClick 関数を起動できるようにすることができます。

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();
    }
}
于 2012-04-05T21:22:08.850 に答える