MVC'de PagedList Kullanarak Verileri Sayfalama

Verilerimiz fazla uzunlukta olduğunda okuma problemleri yaşanabilir. Web sayfalarında böyle bir durum hiç istenmez. Verilerin doğru bir şekilde kullanıcıya ulaştırılması önemlidir. Bu amaçla veriler sayfa sayfa gösterilmesi gerekir.İşte Mvc de bu işlemi PagedList ile yapmaktayız. Nasıl mı ?

Önce sayfa isimli bir Mvc projesi oluşturalım.Tools-Nuget Package Manager-Manage Nuget Packages for Solution seçeneğini seçip browsere PagedList yazalım.

Resimdeki eklentiyi seçelim ve projemize install edelim. Projemizin Referans bölümüne ;

Dosyaları eklenecektir ve ayrıca Content klasörü oluşacak ve içerisine PagedList.css doyası da hazır gelmiş olacaktır.

Peki şimdi projemizde kullanılmak üzere temel isimli bir veritabanı ve musteriler  adlı bir tablo oluşturalım.

Hazırlanan veritabanı için Modelimizi oluşturalım. Projeye HomeController ekleyelim ve kodlamasını yapalım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using sayfa.Models;
using PagedList;
using PagedList.Mvc;
namespace sayfa.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        temelEntities veri= new temelEntities();
        public ActionResult Index(int? SayfaNo)
        {
            int _sayfaNo = SayfaNo ?? 1;
            var muslist = veri.musteriler.OrderBy(m => m.id).ToPagedList<musteriler>(_sayfaNo, 10);
            return View(muslist);
          
        }
    }
}

Using bölümüne eklenen ve ToPagedList ifadesinin kullanıldığı yerleri özellikle renklendirdim. View kısmına geçip şu tasarımı yapalım.

@using PagedList
@using PagedList.Mvc
@using sayfa.Models
@model IPagedList<musteriler>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link href="~/Content/PagedList.css" rel="stylesheet" />
</head>
<body>
    <h2>Müşteriler</h2>

    <div id="dvMusteriListesi">
        <table>
            <thead>
                <tr>
                    <th>İd</th>
                    <th>Şirket Adı</th>
                    <th>Müşteri Adı</th>
                    <th>Şehir</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var Musteri in Model)
            {
                    <tr>
                        <td>@Musteri.id</td>
                        <td>@Musteri.sirketadi</td>
                        <td>@Musteri.musteriadi</td>
                        <td>@Musteri.sehir</td>
                    </tr>
                }
            </tbody>
        </table>

        @Html.PagedListPager(Model, _sayfaNo => Url.Action("Index", "Home", new { SayfaNo = _sayfaNo }))
</div>      
</body>
</html>

Renkli yerlere dikkat ediniz. Ve sonuç;




Etiketler
PagedList Content ToPagedList
Mesaj Yaz