Frage

Ich habe eine Listview, die ich auf eine Sammlung bin Datenbindung von Objekten etwas wie folgt aus:

int total;
List<Client> clientList = 
    clientData.GetClients(criteria, pageNum, pageSize, out total);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Wenn die pageNum, und pagesize Gesamt Parameter Paging an der Datenzugriffsschicht zu erleichtern. So weit so gut.

Jetzt kann ich einen Datapager auf der Seite wirft, ist es an der Listview zeigen und eine anständige Paging-UX erhalten. es ist ein wenig, um es, wenn Sie programmatisch statt deklarativ mit einer Datenquelle Steuer sind verbindlich, aber hier ist das Problem, dass Datapager erwartet, dass die gesamte Ergebnismenge jedes Mal abgerufen wird, von denen aus sie berechnen Paginierung, so ist es die einzige Seite der Ergebnisse sieht, wie die Anzahl der verfügbaren Datensätze zurückgegeben und wiedergegeben wird, als ob es nur eine Seite der Ergebnisse zur Verfügung. Mit anderen Worten arbeitet das oben beschriebene Szenario mit Datapager in Ordnung, wenn wir auf eine nicht-Paging-Version von GetClients wechseln:

List<Client> clientList = clientData.GetClients(criteria);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Offensichtlich da unsere Datenzugriffsschicht ist so freundlich, uns mit einem Verfahren, um eine Seite zu einem Zeitpunkt abzurufen, wäre dies vorzuziehen, alle Datensätze abzurufen, jedes Mal. Es wäre schön, wenn wir ausdrücklich Datapager der insgesamt verfügbaren Datensätze informieren können, so konnte es immer noch automatisch Paginierung Ausgabe erstellen, aber nur eine Seite zu einem Zeitpunkt erforderlich, dies zu tun.

Ich habe nicht eine einfache Möglichkeit, dies zu tun, und ich habe nicht aufgedreht etwas bei der Suche gefunden. Zwar kann ich derzeit nicht ein tiefes Verständnis für die Umsetzung von Datapager besitzen, so dass hoffentlich etwas, das ich mit Blick auf.

War es hilfreich?

Lösung

Sie haben nichts übersehen.

Bei großen Ergebnismengen zu tun Sie müssen Ihre eigenen Paging-Kontrollen Paging auszuschalten und hinzuzufügen.

Nach meiner Erfahrung << <> >> genügen. Niemand geht vorbei an der dritten Seite sowieso.

Andere Tipps

Haben Sie einen Blick auf die ListViewPagedDataSource und seine AllowServerPaging Eigenschaft, ich denke, dass können sein, was Sie suchen ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top