2016-07-06 13 views
1

Könnten Sie bitte lassen Sie mich wissen, gibt es eine Möglichkeit, die Seitennummerierung in ASP.NET MVC ohne Verwendung von externen NUget-Paket (zB: PageList.mvc). Eigentlich suche ich nach einer serverseitigen Lösung für die Seitenumbruch in MVC.Paginierung in ASP.NET MVC ohne Verwendung eines externen NUget-Pakets

Bitte helfen Sie mir, wenn jemand die Antwort kennt.

Dank Nishad

+0

Bitte beachten Sie, dass das Modell-view- Controller-Tag ist für Fragen zum Muster. Es gibt ein bestimmtes Tag für die ASP.NET-MVC-Implementierung. –

Antwort

1

Sie WebGrid verwenden können. Es ist kein NuGet-Paket, es ist Teil des Namespace System.Web.Helpers und bietet standardmäßig Paginierungsfunktionen.

1.Model:

public class Product 
{ 
    public int ID { get; set; } 
    public string Description { get; set; } 
} 

2.View:

@model IEnumerable<MVCTutorial.Models.Product> 

@{ 
    Layout = null; 
    WebGrid grid = new WebGrid(Model, canPage: true, canSort: false, rowsPerPage: 2); 
} 

@grid.GetHtml(
tableStyle: "table", 
columns: grid.Columns(
    grid.Column("ID", "ID", format: @<text> @item.ID 
    </text>, style: "p13"), 
    grid.Column("Description","Description", format: @<text> @item.Description</text>))) 

3.Controller:

public class HomeController : Controller 
{ 
    public ActionResult GetProducts() 
    { 
     var p1 = new Product { ID = 1, Description = "Product 1" }; 
     var p2 = new Product { ID = 2, Description = "Product 2" }; 
     var p3 = new Product { ID = 3, Description = "Product 3" }; 
     var p4 = new Product { ID = 4, Description = "Product 4" }; 

     var products = new List<Product> { p1, p2, p3, p4 }; 

     return View(products); 
    } 
} 
+0

Danke Denis. Dies wird mir sehr hilfreich sein. Das ist die Sache, die ich tatsächlich fand. Danke noch einmal. – user3796885

+0

Hallo Denis, Könnten Sie mich wissen lassen, wie Parameter als ActionResult GetProducts (Bool-Wert) an die Action-Action-Methode übergeben, wenn ich auf jeden Paging klicken. – user3796885

1

können Sie LINQ verwenden und die Seitennummer und Resultsperpage an eine Steuerung übergeben.

var entries = _dbContext.YourTable.OrderBy(e => e.Date).Skip(pageNumber - 1).Take(resultsPerPage); 

Ihre Logik sollte auch berechnen, wie viele Seiten es, indem man die Anzahl der Datensätze für Ihre bestimmte Abfrage und dabei einige grundlegende mathematische sein wird.

Hier ist ein gutes Beispiel: http://jasonwatmore.com/post/2015/10/30/ASPNET-MVC-Pagination-Example-with-Logic-like-Google.aspx