2012-04-04 76 views
0

我正在使用Telerik Rad tabstrip控件,其中我正在加載兩個用戶控件A,B。現在,從用戶控件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); 

然後在我的第二個控制,delcare公共事件處理程序的變化:

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(); 
    } 
} 
+0

感謝您的迴應,以及在我的情況下RadTabStrip1_TabClick無法使用。用戶控件A有一個網格,當點擊網格視圖時,我想用一些查詢字符串參數加載或調用或重定向到用戶控件B. – msbyuva 2012-04-09 13:12:03

+0

不確定編輯是否也像評論一樣在您的結尾標記更新,但我已編輯了一個適合您的解決方案。 – nurgent 2012-04-09 16:50:37

+0

謝謝nurgent ..它幫助我得到我需要的.. !! – msbyuva 2012-04-10 13:25:23

相關問題