2010-11-19 6 views
2

Ich muss meine Benutzersteuerelemente pagen - Gruppen von 8 oder 10 sollten gut aussehen. Derzeit sind sie in einem Platzhalter:Wie kann ich Paging zu Benutzersteuerelementen hinzufügen?

<asp:PlaceHolder ID="ProfileContainer" runat="server"></asp:PlaceHolder> 

Und der Platzhalter wird wie folgt aufgefüllt:

var model = //LINQ to Entities query 

foreach(var profile in model) { 
    Controls_Profile profile = (Controls_Profile)Page.LoadControl("~/Controls/Profile.ascx"); 

    profile.Name = model.Name; 
    //more properties 
    ProfileContainer.Controls.Add(profile); 
} 

Wie kann ich Seite die Ergebnisse für den Fall, ich Hunderte von Profilen haben? Die meisten Posts, die ich finde, beziehen sich auf das Erstellen eines benutzerdefinierten Paging-Steuerelements, das nur eine Tabelle paginiert.

Ich dachte über die Erstellung eines Leistungsindikators, der die erste Steuerung mit <div id="Group1"> vorausgehen würde. Fügen Sie nach 8 oder 10 Steuerelementen </div> hinzu. Ich könnte jQuery verwenden, um vorherige/nächste Links einzufügen und ihren Fluss basierend auf der Gruppennummer zu steuern. Aber wie mache ich Response.Write("<div id="groupx">"); in der Mitte der Schleife, wie die Steuerelemente hinzugefügt werden? Wie würde das überhaupt funktionieren?

+0

Sie könnten eine Funktion erstellen, die eine mit Ihren benutzerdefinierten Steuerelementen aufgefüllte DataTable zurückgibt, und diese als Datenquelle einer GridView festlegen. Dies würde Ihnen erlauben, die Paging-Funktionen der GridView zu verwenden. – clifgriffin

Antwort

0

In Bezug auf meinen Kommentar:

public DataTable getControls() 
{ 
    DataTable dt = new DataTable(); 
    //Code to populate table 
    return dt; 
} 

Und:

<asp:GridView ID="YourGridView" AllowPaging="true" DataSource='<%# getControls() %>'></asp:GridView> 

Ich fürchte, dass Ihre Datenquelle eine zählbare Schnittstelle irgendeine Art haben, um hat für das Paging, obwohl zu arbeiten.

Wenn dies fehlschlägt, schlage ich vor, dass Sie sich mit gängigen Paging-Techniken vertraut machen und etwas manuell implementieren. Nicht so schwer wie du denkst.

+0

Mein Modell ist nicht aufzählbar, daher wird dies wahrscheinlich nicht funktionieren. –

+0

Wie kann ich diese Sammlung aufzählbar machen? –