MVC PagedList ile Sayfalama


20.02.2019 13:24:53 Asp Net MVC Uygulamaları Bilgi Yolunda

Asp.Net MVC’de kayıtları View üzerinde görüntüleme işlemi yaptığınızda, eğer kayıt sayısı çok ise sayfalamak isteyebilirsiniz.

Ben sizlere var olan projenize ekleyeceğiniz şekilde kısaca anlatıcam eğer sorun yaşarsanız konu sonundaki VİDEO da aradığınız herşeyi bulacaksanızSmile

Örn Alışveriş siteleri bizlere ilgilendiğimiz ürünlerin tümünü getirir fakat yüzlerce ilgilendiğim ürün olabileceği için bunları 20 şer li olarak bana gösterir.Bizimde yapmak istediğimiz tamda bu aslında.Elimizdeki tabloyu düzenli olarak kullanıcıya sunmak istiyoruz.

Asp.MVC’de bu işlemi PagedList ile gerçekleştirebilirsiniz. PagedList’i kullanabilmek için, NuGet üzerinden PagedList.MVC paketini projenize yüklemeniz gerekecektir. İlk aşamada bu işlemi gerçekleştiriniz.

Pagelisti projeme kurduktan sonra Sayfalama yapacağım modelimi gönderecek olan controllerda PadeList kütüphanesini eklemeliyim.

Örn:Controller Index

using PagedList;

Daha sonra ilgili controller benden int sayfa değeri beklemeli.

public ActionResult Index(int? page)

Buradaki int? page in anlamı sayfa gelirse o sayfayı çağır.Gelmezse ilk sayfayı kullan.? işareti page gelmeyedebilir anlamı taşır.

return View(calisanlar.OrderBy(x=>x.Ad)ToPagedList(page ?? 1, 2));

Burada ise çalışanlar modelini ada göre listeleyip PagedList olarak View e gönderiyoruz.Her sayfada 2 eleman olacak şekilde gönderiyoruz.

Örn:View Index

Şimdi sıra geldi View da yapacağımız işlemlere.İlgili Index View ını açıyoruz.

@model IPagedList<YeniBlog.Models.BlogModel>
@using PagedList.Mvc;
@using PagedList;

Kütüphaneleri ve Modeli İlgili View a ekliyoruz.

İlgili Viewda tablomuzu aşagıdaki gibi oluşturuyoruz.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table class="table">
    <tr>
        <th>Ad</th>
        <th>Soyad</th>
        <th>T.C no</th>
    </tr>

    @foreach (var item in Model)                                                                                                                                                              
    {
    <tr>
        <td>
            @Html.DisplayFor(ModelItem => item.Ad)
        </td>
        <td>
            @Html.DisplayFor(ModelItem => item.Soyad)
        </td>
        <td>
            @Html.DisplayFor(ModelItem => item.Tc)
        </td>
    </tr>
    }
</table>

Son olarakta tablodan sonra aşağıdaki kodumuzu ekliyoruz.

@Html.PagedListPager((IPagedList)Model,page=>Url.Action("Index",new { page}))

PageList olarak aldığımız modeli 2 şerli sıralıyoruz ve programımızı çlıştırdığımızda sayfalama işlemi gerçekleşmiş oluyor.

Video da çalıştığım örnek projeyi >>buradan>> indirebilirsiniz.

Buraya kadar gelmişseniz büyük ihtimal başarmışsınızdır.Tebrikler.Diğer projeleride incelemeyi unutmayın.Smile

Önemli:Kodlarla ilgili sıkıntı yaşıyorsanız aşağıdaki video yu izlemenizi şiddetle tavsiye ediyorum.





Yorum Yap :



Site içi Arama


En Çok Okunanlar

Sorusu Olan Varmı?

Paylaştıgım video,dosya yada projelerle ilgili sorularınızı buradan sorabilirsiniz.
Not:Projemi siz yaparmısınız demeyin lütfen :)

Sorunuz mu var?