2016-05-27 3 views
0

Wir haben ein Telerik RadMultiPage-Steuerelement auf einer Webseite mit 7 Tabs eingefügt.
Auf einigen dieser Registerkarten möchten wir ein Kombinationsfeld anzeigen, das dem Benutzer eine Liste von Tabellennamen anzeigt, aus denen er auswählen kann, um Daten zu bearbeiten/anzuzeigen.
Wir möchten, dass die Liste der Tabellennamen basierend auf der ausgewählten Registerkarte gefiltert wird.Wie werden Daten von Parent RadMultiPage übergeben, um Combobox auf untergeordneten RadPageView dynamisch zu filtern?

Gibt es eine Möglichkeit, Werte von der Seite, auf der das RadMultiPage-Steuerelement gehostet wird, an die untergeordneten Webseiten für jedes RadPageView zu übergeben?

enter image description here

Antwort

1

Wenn Sie die contentURL verwenden ganze Seiten im Pageviews,

  • verwenden, um einen Abfragezeichenfolgeflag Parameter oder Session/Cache Variable zu laden (Sie es in ähnlicher Weise wie die andere Antwort anwenden können

    )
  • OR verwenden JavaScript, um eine Funktion auf der übergeordneten Seite aufzurufen, die die benötigten Daten zurückgibt, so etwas wie

    //in the multiplage content page 
        function getCurrentTab() { 
         var info = window.parent.getActiveTab(); 
        } 
    
        //on the page with the tab strip 
        function getActiveTab() { 
         var ts = $find("<%=YourTabStrip.ClientID%>"); 
         return ts.get_selectedTab().get_value(); 
        }`enter code here` 
    
1

Hier ist eine Idee für Sie zu prüfen. Was Sie wahrscheinlich benötigen, ist, ein Tab-Click-Ereignis auf dem Server zu registrieren und dann diesen Tab-Wert in Ihr Dropdown-Listen-Steuerelement zu übergeben und dann die Daten zu filtern und erneut zu binden.

<telerik:RadTabStrip ID="RadTabStrip1" runat="server" OnTabClick="RadTabStrip1_TabClick" MultiPageID="RadMultiPage1"> 
    <Tabs> 
    <telerik:RadTab runat="server" Text="Tab1" Value="1" PageViewID="PageView1"> 
    </telerik:RadTab> 
    <telerik:RadTab runat="server" Text="Tab2" Value="2" PageViewID="PageView2"> 
    </telerik:RadTab> 
    </Tabs> 
</telerik:RadTabStrip> 
<telerik:RadMultiPage id="RadMultiPage1" runat="server" SelectedIndex="0"> 
    <telerik:RadPageView id="PageView1" runat="server"> 
     ... 1st RadComboBox control here 
    </telerik:RadPageView> 
    <telerik:RadPageView id="PageView2" runat="server"> 
     ... 2nd RadComboBox control here 
    </telerik:RadPageView> 
</telerik:RadMultiPage>  


protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e) 
{ 
    switch (e.Tab.Value) 
    { 
    case "1": 
     // get a reference of your 1st RadComboBox control and rebind data... 
     break; 
    case "2": // add a new child tab 
     // get a reference of your 2nd RadComboBox control and rebind data... 
     break; 
    } 
} 
+0

Die Objekte RadTabStrip und RadComboBox befinden sich auf verschiedenen Webseiten. Der RadTabStrip befindet sich auf der "Haupt" -Seite und die RadComboBox befindet sich auf einer anderen Webseite, wird jedoch auf der "Haupt" -Seite angezeigt, wenn der Benutzer eine bestimmte Registerkarte auswählt. Ist es möglich, "eine Referenz Ihrer ersten RadComboBox-Steuerungs- und -Rinddaten zu erhalten", wenn sich die Steuerelemente RadComboBox und RadTabStrip auf verschiedenen Webseiten befinden? –

+1

@MatthewWalk Wenn "eine andere Webseite" gemeint ist, ist eine externe ASPX-Seite, dann könnten Sie vielleicht erwägen, den Tab-Wert über den Abfrage-String-Parameter zu übergeben und Ihre Ajax-Anfrage-URL einzugeben. Wenn Sie eine externe ASCX-Kontrollseite verwenden möchten, können Sie eine öffentliche Eigenschaft für das Steuerelement erstellen und diesen Tabwert auf Ihrer Hauptseite zuweisen. – woodykiddy