ASP.NET MVC-Paging, die Erhaltung der Aktuellen Query-Parameter
Habe ich ein Gitter mit Kontakt-Informationen, die ich brauche, um in der Lage sein, um Seite durch.
Alle Sanitär ist bereits im Ort, mit einem letzten detail. Auslagerung erfolgt über eine einfache p Querystring-parameter, z.B. www.myurl.com/grid?p=3 wäre die Dritte Seite; die repository wird automatisch Holen, die richtigen Daten und auch die Gesamtzahl der Elemente. Die Größe von jeder Seite an anderer Stelle definiert ist und das brauche ich nicht zu befürchten, dass in der Abfrage-string.
Jedoch, ich Unterstützung Suche etc. wie gut. Der Suchbegriff gesucht geschrieben als q in meinem Querystring. So kann ich jetzt eine Kombination: www.myurl.com/grid?q=tom&p=2 die Suche nach "tom" und zieht die zweite Seite der Ergebnisse.
Das problem, das ich Gesicht jetzt, da die q (oder anderer) Parameter kann vorhanden sein, die in den query-string, wie erstelle ich einen pager für diese (die müssten halten die ursprünglichen Parameter, so dass, wenn ich auf "Seite 2" es braucht, um zu gehen von
-
www.myurl.com/grid?a=1&b=xyz&q=tom
zu
-
www.myurl.com/grid?a=1&b=xyz&q=tom&p=2
Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellte ich eine ähnliche Frage wie gestern. Vielleicht möchten Sie check out
Aufbewahrung von Daten in .net mvc
folgende code ist der code, kopiert von Steve Sanderson buchen
So, Sie müssen Ihre Seite, die links leiten den Benutzer auf die gleiche URL, aber mit einer anderen "Seite" - Wert. Die naheliegendste Möglichkeit, dies zu tun ist, um Ihren code, der eine Seite rendert link schnappen Sie sich den query-string aus der aktuellen Anforderung, ändern Sie die "Seite" - Wert, und Rendern Sie einen link mit den modifizierten string.
Alternativ, und das ist der Ansatz, den ich genommen habe, können Sie eine neue route für Ihre "Liste" Seiten mit Paginierung und Sortierung von Werten. Auf diese Weise sind Sie Teil der URL, sondern auch sehr einfach zu handhaben, die in Ihrem controller.
Einem Beispiel umfasst das Sortieren und paging-Werte könnte wie folgt Aussehen:
Offensichtlich Ihre "Liste" action-Methode muss in der Lage sein, um eine Interpretation der Werte und behandeln die Daten entsprechend. Dies kann nicht sein, was Ihr wirklich sucht, aber ich dachte, ich würde werfen es draußen.
BEISEITE: ich habe auch geschrieben, [List] action filter-Attribut, nimmt diese Werte aus der route und (wenn das Modell ist eine Sammlung) gilt automatisch die Sortierung und paging in OnActionExecuted. Auf diese Weise werden alle meine Handlungen zu tun hat, ist das abrufen der Daten und setzen Sie das Modell.
Ich anhalten, die Suche Werte für jede form in der Sitzung. In Methoden, die Antworten zu suchen oder paging ich im ersten laden, bis alle Werte aus der session, dann überschreiben Sie (und das session-Werte, wenn erforderlich) mit den Werten aus dem querystring oder form-Parameter, je nachdem, ob es ein get oder post. Auf diese Weise habe ich nicht zu befürchten, dass das paging-code einschließlich der Suchkriterien -- es verwendet einfach, was ist schon gespeichert. Wenn dann will ich einen neuen Suche, dann werden die Werte in den Suchfeldern ändern und die Suche wird durchgeführt unter Verwendung eines filter-Taste -- das beginnt mit den Ergebnissen von Seite 1.