Projelerde en çok kullanılan Asp.net kontrollerinden biri kuşkusuz repeater. Repater kullandıktan sonra sıralama işlemini (Repeater Paging) yapmak için ya jquery paginateTable kullanacağız ya da arka planda PagedDataSource sınıfını kullanacağız.
Bu makalemizde PagedDataSource nasıl kullanıldığına dair ufak bir örnek yapacağız.
Sayfamızda sayfa adedini ve kaçıncı sayfada olduğunu gösteren bir adet label1, ileri linki için ID si linkNext ve ID si linkPrev olan 2 adet HyperLink, ve veritabanına bağlanıp kayıtların aktarıldığı dt – datatable.
Veritabanına bağlanıp DataTable a verileri aktarma yine temel bilgi olduğu için değinmiyorum. Sizin bu kısma kadar geldiğinizi farz ediyorum.
İşleyiş:
- Oluşturduğunuz PagedDataSource datasource nu kayıtlarımızın bulunduğu datatable gösteriyoruz.
- QueryString ile hangi sayfadayız belirleyip “CurrentPageIndex” ile o sayfayı gösteriyoruz.
- Son olarak repeaterımızın datasource nu PagedDataSource olarak gösteriyoruz.
// bu kısma kadar dt datatable'na kayıtların aktarıldığınız farz ediyorum. PagedDataSource pds = new PagedDataSource(); pds.DataSource = dt.DefaultView; pds.AllowPaging = true; pds.PageSize = 8; int currentPage; if (Request.QueryString["page"] != null) { currentPage = Int32.Parse(Request.QueryString["page"]); } else { currentPage = 1; } pds.CurrentPageIndex = currentPage - 1; Label1.Text = "Sayfa: " + currentPage + " / " + pds.PageCount; if (!pds.IsFirstPage) { linkPrev.NavigateUrl = "default.aspx?page=" + (currentPage - 1); } if (!pds.IsLastPage) { linkNext.NavigateUrl = "default.aspx?page=" + (currentPage + 1); } RptMakaleler.DataSource = pds; RptMakaleler.DataBind(); //---------------------------
PageSize: Burada sayfalarda kaçar adet kaydın görünmesini istiyorsanız belirtebilirsiniz.
8 yorum
Tşkler 🙂
Teşekkürler emeğinize sağlık … Allah razı olsun
Bundan önce collection pager kullanıyordum fakat bir projede item databound olayını kullanmam gerekti buna bağlı button click olayında postback sorunu aldım collection pager bu konuda pek sağlıklı değil.
Bu yönlemle işimi çözdüm teşekür ediyorum. Peki numaralandırma yapabilir miyiz ?
Kodlarına sağlık teşekkürler… DataPager ile çözdüm bende sayfa numaraları görünmesi için.
ben veri tabanından verileri datatable ile çekiyorum bir tane literal içine çekiyorum şimdi ben ileri geri yaptım ancak sayfadaki kısıtlamayı yapamadım.
Sayfadaki kısıtlamadan kastınız nedir anlayamadım
Verdiğiniz örnek çalışıyor teşekkür ederim ama benim asıl yapmak istediğim böyle bir şey değil. Örnek veriyorum
1 2 3 4 ……. 80 81
ilk dört ve son ki rakamlar değişecek tabiki tıklanan linke göre.
Bu şekilde yapmak için repeater yerine listview ve sayfalama içinde datapager kullanmanız gerekiyor. Listview ve Datapager kullanımını google da arayarak bulabilirsiniz.