2012-04-04 16 views
0

Ich verwende das Tabler-Steuerelement von Telerik Rad, in dem ich zwei Benutzersteuerelemente A, B lade. Jetzt möchte ich Benutzersteuerelement A laden oder aufrufen oder an Benutzersteuerelement B umleiten mit einigen Abfrage-String-Parametern.Benutzersteuerelement von einem anderen Benutzersteuerelement in einem RadTabStrip laden

Wie kann ich es tun?

Im Folgenden finden Sie Markup:

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

Antwort

2

[beginnen bearbeiten]

auf Ihrem primären Kontrolle, könnten Sie einen Event-Handler machen. Wenn Sie diesen Event-Handler vom primären Steuerelement aus ausführen möchten (z. B. beim Klicken auf die Schaltfläche), wird der Code auf der sendenden Seite ausgeführt.

Deklarieren Sie den benutzerdefinierte Event-Handler

public delegate void ControlChangedEventHandler(string QueryString); 

Dann in meiner Ihrem zweiten Kontrolle, delcare einen öffentlichen Eventhandler für die Änderung:

public ControlChangedEventHandler OnControlChanged; 

Dann auf Vorlage Ihrer Kontrolle, ob OnControlChanged sehen wurde eingestellt und dann ausgeführt.

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

Jetzt in Ihrer Haupt-Steuerung, erstellen Sie eine Funktion der Arbeit

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

und weisen Sie dann die Funktion als Ereignishandler für das Usercontrol für die OnAddressChanged zu behandeln.

PRDashBoards.OnControlChanged += new ControlChangedEventHandler(OnControlChanged); 

[alte Antwort basierte auf auf den Registerkarten klicken]

Sie die Autopostback-Eigenschaft des RadTabStrip auf True gesetzt können die OnTabClick Funktion Feuer zu ermöglichen.

Innerhalb der OnTabClick-Funktion können Sie auf eine öffentliche Eigenschaft oder Funktion von UserControl zugreifen und Daten an diese übergeben. Beispielsweise können Sie eine öffentliche Funktion erstellen, um die Daten basierend auf einem Parameter wiederherzustellen. Zum Beispiel:

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

Danke für die Antwort, gut in meinem Fall kann RadTabStrip1_TabClick nicht verwendet werden. Benutzersteuerung A verfügt über ein Raster, wenn ich auf die Rasteransicht geklickt habe, möchte ich mit einigen Abfragezeichenfolgenparametern laden oder aufrufen oder an Benutzersteuerelement B umleiten. – msbyuva

+0

nicht sicher, ob die Bearbeitung auch ein Update an Ihrem Ende wie ein Kommentar markiert, aber ich habe in einer Lösung bearbeitet, die für Sie arbeiten sollte. – nurgent

+0

Danke nurgent .. es hat mir geholfen zu bekommen, was ich brauche .. !! – msbyuva

Verwandte Themen