2016-09-07 1 views
0

Ich entwickle MVC4 Anwendung mit Suchen, Paging und Sortierung. Bei normaler Sicht funktioniert alles gut. Jetzt konvertiere ich die gleiche Anwendung mit Ajax & Teilansicht. Wie kann ich meine Suche & Sortierparameter durch Paging-Steuerelement auf Teilansicht übergeben. Jetzt kann ich gefilterte Daten in der Teilansicht laden, gehe aber zur nächsten Seite, habe meine Suchparameter verloren und lade alle Datensätze ohne Suchfilter.Suchen und Sortieren mit AJAX Paginierung in MVC4

Meine Paging Kontrolle in _PartialView.cshtml

@Html.PagedListPager(Model, 
         page => Url.Action("AjaxMethod", 
          new 
          { 
           page, 
           searchByUserName = Request.QueryString["searchByUserName"], 
           searchByReaderName = Request.QueryString["searchByReaderName"], 
           searchByReaderType = Request.QueryString["searchByReaderType"], 
           searchByUploadDate = Request.QueryString["searchByUploadDate"], 
           sortBy = Request.QueryString["sortBy"] 
          }), 
         //new PagedListRenderOptions.() { Display = PagedListDisplayMode.IfNeeded, DisplayPageCountAndCurrentLocation = true } 
         PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions(){ HttpMethod = "GET", UpdateTargetId = "divData"}) 
         ) 

Bitte vorschlagen, was ich vermisst ....

Antwort

0

kam ich zu wissen, was ich bin fehlt, Teilansicht hat Antrag nicht bekam. QueryString-Werte, weshalb das Paging-Steuerelement Suchparameter verloren hat und alle Datensätze lädt. So modifizierte ich Pager Kontrolle in _PartialView.cshtml wie folgt:

@Html.PagedListPager(Model, 
         page => Url.Action("AjaxMethod", 
          new 
          { 
           page, 
           searchByUserName = ViewBag.searchByUserName, // Request.QueryString["searchByUserName"], 
           searchByReaderName = ViewBag.searchByReaderName, // Request.QueryString["searchByReaderName"], 
           searchByReaderType = ViewBag.searchByReaderType, // Request.QueryString["searchByReaderType"], 
           searchByUploadDate = ViewBag.searchByUploadDate, // Request.QueryString["searchByUploadDate"], 
           sortBy = ViewBag.sortBy // Request.QueryString["sortBy"] 
          }),       
         PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() 
         { HttpMethod = "GET", UpdateTargetId = "divData", LoadingElementId="divloading" }) 
         )

Diese ViewBag Objekte in Controller Aktion-Methode initialisiert. Wer hat eine bessere Lösung als das für das obige Problem. Bitte vorschlagen.

+0

Hallo alle, Kann jemand alternative und bessere Lösung dafür vorschlagen. –