2016-03-21 1 views
0

Ich habe die MVC4 Paginierung Bibliothek von Nugget-Paket implementiert. Es funktioniert gut.MVC4 Paging Nugget Paket Workflow

Wenn es Tausende von Datensätzen sind meine Anwendung funktioniert gut mit Paging nicht, wenn Website Belastungsdaten Erhöhung um 10 Mangel, Anwendung langsam bleiben.

Siehe unten meinen Code.

private const int defaultPageSize = 10;  
public ActionResult Index(int? page) 
     { 
      int currentPageIndex = page.HasValue ? page.Value : 1; 

      var items = db.GetAllEmployees(); // This will return all the records 

      var result = items.Documents.ToPagedList(currentPageIndex, defaultPageSize); 


      return View(result); 
     } 

So lösen Sie dieses Problem, wenn die Datenlast erhöht wird.

Antwort

0

Ihr Problem ist, dass Sie immer alle Daten zu laden, anstatt nur laden, was Sie brauchen, um Beispiel. Ich benutzte context.MyTable, weil ich nicht Logik Ihrer GetAllEmployees() Methode kennen. Auch brauchen Sie nicht Paginierung Nuget-Paket.

public ActionResult Index(int? page) 
{ 
    int currentPageIndex = page.HasValue ? page.Value : 1; 

    var items = context.MyTable.Skip((currentPageIndex - 1) * defaultPageSize) 
    .Take(defaultPageSize).ToList(); 

    return View(items); 
} 
+0

GetAllEmployees() Logik ist nur context.MyTable.ToList(). Eine andere Sache ist dann, wie man dasselbe Paging anstelle von Nuget einführt? – Anil

+0

Anstatt ToPagedList verwenden Sie die Kombination Skip and Take. –

+0

Ich stimme zu, aber wie man Paging-Steuerelement wie folgt erstellen. irgendein Beispiel? – Anil