2016-08-03 17 views
1

für serverseitige Paginierung Ich verwende PageList. Ich sah: https://www.youtube.com/watch?v=5omEuuIIFcgMVC Entity Framework serverseitige Paginierung PageList

Ich benutze ViewModel. Ich folgte den Schritten von "Dennis R".

Using a PagedList with a ViewModel ASP.Net MVC

Aber ich habe andere Art der View-Modell:

Meine Entity Klasse

public class Summary 
{ 

} 

Ansichtsmodell ist:

public class SummaryViewModel 
    { 
    ...   
    .... 
    } 

public class DashboardViewModel 
    { 
     public List<SummaryViewModel> SummaryRestricted { get; set; } 

     public List<SummaryViewModel> SummaryUnrestricted { get; set; } 

    } 

meine Controller-Klasse:

public ActionResult Display(int page = 1, int pagesize = 4) 
     {    
      var entitySummaries = _dbContext.Summaries.ToList(); 
      var vm = MapEntityToViewModel(entitySummaries); 
      //return View(vm); 
//return View(vm.FundsUnrestricted.ToPagedList(page, pagesize)); ???? 

     } 

     DashboardViewModel MapEntityToViewModel(List<Summary> funds) 
     { 
      DashboardViewModel dashboardViewModel = new DashboardViewModel(); 

      List<Summary> unRestricted = funds.Where(x => xxx).ToList() ; 

      List<Summary> restricted = funds.Where(x => xx).ToList(); 

      dashboardViewModel.SummaryUnrestricted = unRestricted.Select(x => new SummaryViewModel(x)).ToList(); 

      dashboardViewModel.SummaryRestricted = restricted.Select(x => new SummaryViewModel(x)).ToList(); 

      return dashboardViewModel;   
     } 

meine Sicht ist:

@model PagedList.IPagedList<ViewModels.DashboardViewModel> 
@using PagedList.Mvc; 
@using PagedList; 

<table id="Restricted" class="table table-bordered"> 
    @foreach (ViewModels.SummaryViewModel item in Model.SummaryRestricted) 
    { 
     <tr> <tr> 
    } 
</table> 

<table id="UnRestricted" class="table table-bordered"> 
    @foreach (ViewModels.SummaryViewModel item in Model.SummaryUnrestricted) 
    { 
     <tr> <tr> 
    } 

</table> 

meine Sicht hat für eingeschränkte Zusammenfassungen und uneingeschränkte Zusammenfassung auf derselben Seite sowohl die Tabellen angezeigt werden soll. Kann mir jemand helfen, wie kann ich Paging auf beiden Tabellen mit pageList anwenden?

Antwort

0

Ich löste das. anstelle der Liste <> in View-Modell ersetzen ich es mit ..

public class DashboardViewModel 
    { 
     public PagedList<SummaryViewModel> SummaryRestricted { get; set; } 

     public PagedList<SummaryViewModel> SummaryUnrestricted { get; set; } 

    } 

es funktioniert jetzt gut.