Filter und Paginierung in MVC 4

War ein langer Tag für mich, der versucht, dies herauszufinden, und ich glaube, es gibt immer eine Antwort auf stackoverflow. Ich suchte Beiträge, die ähnlich sind, aber ich denke, keiner hat was bin verzweifelt auf der Suche nach. Hier ist der deal, ich habe diese MVC 4 Projekt arbeite, aber ich lief in einige Probleme, die ausgelöst mich zu werfen, es zu öffnen. Mit IPageList für die Paginierung auf meinem MVC ist ganz cool, aber wie kann ich die paging-Ergebnis gefiltert mit dem gleichen ActionResult container für den index. Hier ist etwas code, um Speisen mit.

public ActionResult Index(int? page, int category = 0)
     {
         int pageSize = 10;
         int pageNumber = (page ?? 1);
         if (category != 0)
         {
             var products = (from p in db.Products where p.ProductID == category select p).OrderBy(x => x.ProductName).ToList();
             return View(products.ToPagedList(pageNumber, pageSize));
         }
         else
         {
             var products = (from p in db.Products select p).OrderBy(x => x.ProductName).ToList();
             return View(products.ToPagedList(pageNumber, pageSize));
         }
     }

Grundsätzlich die int Kategorie ist der Wert, gewonnen aus der dropdownlist. Es filtert perfekt, aber das Problem ist, wenn ich die filter und das Ergebnis größer ist als 10, und ich versuche, um auf die nächste Seite gehen, gibt es auf den index erste Ergebnis. Debugging es mir klar, sobald die nächste geklickt wird, wird der Wert von int Kategorie gelöscht, und es Schritte in den else-block. Hier ist das paging-control-vielleicht gibt es etwas, das angepasst werden muss...

<div>Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
of @Model.PageCount

@if (Model.HasPreviousPage)
{
    @Html.ActionLink("<<", "Index", new { page = 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter  })
    @Html.Raw(" ");
    @Html.ActionLink("< Prev", "Index", new { page = Model.PageNumber - 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter  })
}
else
{
    @:<<
    @Html.Raw(" ");
    @:< Prev
}

@if (Model.HasNextPage)
{
    @Html.ActionLink("Next >", "Index", new { page = Model.PageNumber + 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter  })
    @Html.Raw(" ");
    @Html.ActionLink(">>", "Index", new { page = Model.PageCount, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter  })
}
else
{
    @:Next >
    @Html.Raw(" ")
    @:>>
}

Was ich brauche ist für die gefilterten Ergebnisse wieder auf der Seite zu reagieren, um die Auslagerungsdatei. Ich erwarte Antworten. Danke!

versuchen Sie MVC 4 Paging-das MVC 4 Paging mit bootstrap oder ohne bootstrap-design hat auch verschiedene Optionen, wie ItemTexts, TooltipTitles, Größe, Ausrichtung, IsShowControls, ItemIcon, U-css, Bereiche unterstützt.

InformationsquelleAutor Oluwafemi | 2012-11-08

Schreibe einen Kommentar