Mit paging in Teilansicht, asp.net mvc
Ich würde sehr dankbar, wenn jemand beraten könnte auf folgende:
Aus meiner Sicht habe ich die Liste der Elemente angezeigt:
@model PagedList.IPagedList<Items>
@using PagedList.Mvc;
@foreach (var item in Model)
{//displaying data}
mein pager sieht wie folgt aus:
@Html.PagedListPager(Model, page => Url.Action("Index", new { humanID = ViewBag.HumanID, page = page }),
new PagedListRenderOptions
{
LinkToFirstPageFormat = "<<",
LinkToPreviousPageFormat = "prev",
LinkToNextPageFormat = "next",
LinkToLastPageFormat = ">>",
})
Das problem ist, dass wenn ich auf der nächsten Seite ist es leer zurückgegeben, ohne meine _Layout
. Ich möchte nicht, neu zu laden _Layout die ganze Zeit. Gibt es einen Weg, um Ajax verwenden.ActionLink für pager? So, ich könnte UpdateTargedId
in meinem partial view?
InformationsquelleAutor Gyuzal R | 2013-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Ajax verwenden.ActionLink aber Sie konnte AJAXify die links. Legen Sie den pager in einem
<div>
:dann AJAXify die links:
Beachten Sie, dass in der
success
Rückruf habe ich verwendet$('#some_grid_container')
werden sollten einige einwickeln von div um Ihre gesamte Tabelle.Oops, mein Fehler. Es sollte
$('#myPager').on('click', 'a', function() { ... });
statt$('#myPager').on('a', 'click', function() { ... });
. Vielen Dank für den Hinweis. Dies ermöglicht für die Anmeldung zum click-Ereignis in einem lebendig Art und Weise, was bedeutet, dass auch bei einer Aktualisierung der Seite links in der DOM-Sie brauchen nicht erneut registrieren, der Klick-handler wieder.Ich fügen Sie diesen code und es funktioniert jetzt richtig : var lpage; $('#myPager').auf('click', 'a', function () { var page = purl(dies.href).param('Seite'); if (Seite == lpage) { return; } lpage = Seite;
ich habe
if (this.href == "") { return;}
zu solv dein problemwas ist, wenn wir wollen, bookmark Beispiel: Seite 2 , wie Sie sagten, hier in der Adresszeile query-strings sind nicht vorhanden, auf Ajax-Anfragen, gibt es eine Lösung mit der ajax-Geschichte plugins?
InformationsquelleAutor Darin Dimitrov
Gibt es noch einen Weg zur Implementierung von Ajax mit PagedList.
Wird dieses Stück zu machen, ajax-request, und ersetzen Sie den Inhalt mit "targetContainer". Es gibt Ihnen viel mehr Möglichkeiten in Bezug auf Ajax-call und die Art und Weise, die Sie wünschen, dass diese angezeigt werden.
PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing("targetID") war genug für meine Bedürfnisse
Ich habe gesehen, eine Menge von stellen, welche erklären, wie AjaxOptions zu tun Sachen wie diese, aber KEINER von Ihnen lassen Sie Sie wissen, dass Sie brauchen jquery.unobtrusive-ajax.js um für diese zu arbeiten. Sie können all die Ajax-Optionen, die Sie wollen, aber wenn Sie nicht haben diese Bibliothek in Ihrem bundle-nichts funktioniert.
InformationsquelleAutor Utkarsh
Mein Projekt-setup: MVC4, MvcPaging (PagedList), mit Bereichen. Diese Antwort ist darauf ausgerichtet, dass die setup.
Kurze Antwort:
Während der Konfiguration Ihres AjaxOptions für den pager, sicherzustellen, dass Sie legen Sie Ihr Gebiet (richtig)
Lange Antwort:
Die PagedList Beispiel zeigt, wie Sie passieren auf einem Gebiet, und tun, paging in einem Raum, aber Sie nicht zeigen ein Beispiel zur Verwendung von paging mit einer Teilansicht.
Beispiel-Projekt hat folgenden code (aus _AjaxEmployeeList.cshtml):
Den PagedList Beispiel verwendet eine inline-Tabelle in einer foreach-Schleife, so dass Sie nicht über irgendwelche Probleme/Konflikte mit diesem setup.
Während die Umgestaltung dieser Tabelle in einer Teilansicht (zum Kapseln von Logik (und der Umgang mit paging), ich begann, um ein "teilweise anzeigen '_MyPartialView' wurde nicht gefunden oder es ist keine Ansicht-engine unterstützt die gesuchten Standorte"
Ging ich durch einen ration von änderungen versucht zu erzwingen, die das Gebiet in den Html-Code.Partial () - Aufruf, darunter:
Ändern, wie das routing gehandhabt wird, die nicht arbeiten.
So setzen Sie eine Standard-Route (Zu einem Bereich) in MVC
Vollständig Qualifizierter Pfad zu dem partial view, die funktionierten, aber hässlich war.
mvc3 - mit teilweise Blick auf die in einem anderen Bereich
Die Forschung zu bekommen, die teilweise auf den laden zeigte mir, wie das MVC-Motor-Anfragen verarbeitet. Dieser schickte mich zurück auf die änderung der Ajax-Pager zu senden, den Bereich mit jeder Anfrage. Ich habe versucht, verwenden eine ähnliche syntax wie Html.ActionLink. (Dies trifft nicht/funktioniert nicht)
Das hat nicht funktioniert,so Versagen alle anderen, ich spiegelte das Muster für die Einstellung der controller, das führt uns zu:
Meine persönliche Lehre daraus: C# != Razor != Javascript. Jeder tut Dinge ein wenig anders, und Sie müssen sicherstellen, dass Sie wissen, welche Sprache der line deine Schrift ist für.
InformationsquelleAutor Lodlaiden