ASP.NET MVC ile Sayfalama(Pagination) Yapımı

ASP.NET MVC ile Sayfalama, ASP.NET’de grid bileşenlerini kullandığımızda otomatik olarak karşımıza çıkan paggination yani sayfalamanın ASP.NET MVC’de nasıl yapıldığı ile ilgili bilgiye makalenin devamında ulaşabilirsiniz.

ASP.NET MVC ile Sayfalama(Pagination) Yapımı

ASP.NET MVC ile Sayfalama(Pagination) Yapımı

Öncelikle sayfalama yapabilmek için ihtiyacımız olan kütüphaneleri projemize referans olarak eklemek için visual studio menüsünde Tools > Nuget package manager > Manage NuGet Packages For Solution...‘a tıklayın ardından arama kısmına PagedList.Mvc yazın ve install diyerek yükleyin yada Package Manager Console‘dan aşağıdaki kodu yazarak otomatik yüklenmesinide sağlayabilirsiniz.

Sayfalama için kod tarafının ayarlanması

Sayfalamaya örnek verecek olursak aşağıdaki gibi Index metodumuzda Users tablosundaki tüm kayıtları getirip ToPagedList() metodu ilede sayfalamayı kod tarafında ayarlamış oluyoruz ToPagedList() metodunun ilk parametresine gösterilecek sayfa numarasını ikinci parametresine ise sayfa başına gösterilecek kayıt sayısınısı belirtiyoruz.

HomeController.cs

Sayfalama için view tarafının ayarlanması

View tarafında PagedList kütüphanesinin metodlarını kullanabilmek için sayfa başına aşağıdaki tanımlamaları yapmalısınız.

Ardından sayfalama için kullanacağınız PagedListPager adlı HtmlHelper’ini aşağıdaki gibi tanımlayınız.

Burada page ile tanımladığımız nesne sayfa numarasını taşımaktadır ve querystringde sayfa numarasını taşıyacak değerin adınıda ifade etmektedir sayfalamada oluşturulan linklere tıkladığımızda Index metoduna değer gönderilecek ve ilgili sayfaya ait kayıtlar getirilecektir.

Son olarak projemize ait örnek görüntüye gözatabilirsiniz.

ASP.NET MVC ile Sayfalama(Pagination) Yapımı

PagedListPage adlı html helper’inın 3.parametresine PagedListRenderOptions sınıfı ile bazı ayarları kendimize göre özelleştirebiliyoruz şimdi bu ayarlara ilişkin tablomuza aşağıdan gözatalım.

PagedListRenderOptions Ayarları

BaşlıkAçıklama
DisplayLinkToLastPageSon sayfaya ait link
DisplayLinkToFirstPageİlk sayfaya ait link
DisplayLinkToNextPageSonraki sayfaya ait link
DisplayPageCountAndCurrentLocationSayfa sayısı ve şuanki sayfa

Daha detaylı bilgiye ulaşabilmek için eklentinin GitHub sayfasını ziyaret edebilirsiniz.

PagedList GitHub Sayfası: https://github.com/troygoode/PagedList