Pagination elementi, büyük veri setlerinin kullanıcıya tek bir ekranda yüklenmesi yerine sayfalara bölünerek sunulmasını sağlar. Bu yaklaşım, hem performansı artırır hem de kullanıcıların veriler arasında daha rahat gezinmesini mümkün kılar. Kullanıcılar sayfa numaraları, ileri–geri kontrolleri veya belirli bir sayfaya doğrudan geçiş seçenekleri sayesinde veri setinin farklı bölümlerine kolayca erişebilir.
Pagination elementi, web ve mobil uygulamalarda desteklenmektedir.
1.1. Sık Kullanım Senaryoları
Uzun veri listelerinin sayfalara bölünmesi. Örneğin: kullanıcı listeleri, sipariş kayıtları.
Table elementi ile birlikte kullanılarak tablo performansının artırılması. Büyük veri setlerinde tek seferde tüm kayıtların yüklenmesi yerine sayfa bazlı gösterim sağlanır.
Arama sonuçlarının sayfalı olarak gösterilmesi. Kullanıcı arama yaptıkça sonuçlar belirli sayfa boyutlarında sunulur.
Raporlama ekranları. Finansal raporlar, işlem geçmişi veya analiz tablolarında veri yoğunluğunu azaltmak için kullanılır.
Galeri veya kart bazlı listeleme senaryoları. Ürün katalogları, içerik listeleri veya medya galerilerinde sayfa geçişleri sağlanır.
Mobil uygulamalarda daha akıcı gezinme. Küçük ekranlarda uzun listelerin bölünerek gösterilmesi kullanıcı deneyimini iyileştirir.
2. Temel Özellikler
Sayfa bazlı gezinme desteği. Kullanıcılar ileri–geri butonları, sayfa numaraları veya doğrudan sayfa seçimi ile veri seti içinde kolayca hareket edebilir.
Veri tekrarlayıcı elementlerle uyumlu çalışma. Table, Gallery View gibi elementlerle birlikte kullanılarak veri gösterimi daha düzenli hale getirilir.
Sayfa boyutu kontrolü. Her sayfada kaç kayıt gösterileceği yapılandırılarak kullanıcıya daha okunabilir bir içerik sunulabilir.
Dinamik veri kaynaklarıyla kullanım. Pagination, SQL, REST API veya Managed DB üzerinden gelen verilerle birlikte çalışarak dinamik veri setlerini destekler.
Kullanıcı etkileşimine dayalı veri yenileme. Sayfa değiştiğinde ilgili veri aralığı yeniden çağrılarak yalnızca gerekli kayıtlar yüklenir.
Performans ve kullanıcı deneyimi iyileştirmesi. Özellikle büyük listelerde, hem yükleme süresi kısalır hem de arayüz daha akıcı çalışır.
Web ve mobil uyumluluk. Pagination yapısı farklı ekran boyutlarına uyum sağlayarak tutarlı bir gezinme deneyimi sunar.
2.1. Pagination Elementi Özellikleri
Pagination elementinin özelliklerini, sağ kenardaki Properties panelinden yapılandırabilirsiniz.
Pagination elementi, tabloya bağlı kayıt sayısı 10'dan fazla olduğunda otomatik olarak görünür.
Total: Toplam içerik sayısını belirler. Statik bir değer girilebilir. Sayfa başına gösterilecek içerik sayısına göre toplam sayfa sayısı değişiklik gösterir.
Page Size: Her sayfada gösterilecek içerik sayısını statik veya dinamik olarak ayarlayabilirsiniz.
Current: Ekran açıldığında varsayılan olarak gösterilecek sayfa numarasını belirler.
Show Less Items: Sayfa numaratörlerinde daha az sayının görüntülenmesini sağlar.
Show Quick Jumper: Kullanıcıların doğrudan bir sayfa numarası girerek hızlı geçiş yapabilmesini sağlar.
Show Size Changer: Kullanıcıların sayfa başına görüntülemek istedikleri içerik sayısını değiştirebilmelerini sağlar.
Size Changer Options: Sayfa başına görüntülenecek kayıt sayısı seçeneklerini belirler. Örneğin, 10, 20 veya 100 kayıt gibi.
Pagination elementi, kullanıcı etkileşimine bağlı olarak onChange tetikleyicisini destekler. Kullanıcı sayfa numarasını değiştirdiğinde veya ileri–geri navigasyon yaptığında bu aksiyon otomatik olarak çalışır.
onChange tetikleyicisinin kullanım amacı ve davranışı:
Kullanıcı farklı bir sayfaya geçtiğinde tetiklenir.
Seçilen yeni sayfa bilgisi (current page, page size vb.) aksiyonlara parametre olarak iletilebilir.
Sayfa değişimine bağlı olarak veri kaynağının yeniden çağrılmasını sağlar.
Büyük veri setlerinde yalnızca ilgili sayfanın verilerinin yüklenmesine olanak tanır.
Table, Gallery View gibi veri tekrarlayıcı elementlerin içeriğini senkron şekilde günceller.
Filtreleme veya sıralama ile birlikte kullanıldığında, aktif filtre ve sıralama koşullarına göre yeni sayfa verileri getirilir.
Örnek kullanım senaryoları:
Kullanıcı 2. sayfaya geçtiğinde SQL veya REST API aksiyonunun yeniden çalıştırılması
Pagination ile bağlı bir tablonun veya galeri görünümünün otomatik yenilenmesi
Mobil ve web arayüzlerinde aynı sayfalama davranışının korunması
Pagination elementi, doğrudan veri göstermeyen bir kontrol elementi olduğu için yalnızca onChange üzerinden aksiyon tetikler; farklı bir event (onClick vb.) desteklemez.
3. Pagination Elementi Nasıl Kullanılır?
Bu bölümde Pagination elementinin uçtan uca kullanımını örnek senaryolar üzerinden ele alacağız.
Senaryo: Master Screen Menü Yapısı (Yan Menü – Hiyerarşik Navigasyon)
Bir iş yönetimi veya muhasebe uygulamasında, yüksek hacimli sipariş verilerinin kullanıcıya düzenli ve performanslı şekilde sunulabilmesi için Sipariş Listesi ekranında sayfalama (pagination) yapısı kullanılır. Bu yapı, kullanıcıların veriler arasında kolayca gezinmesini ve aradıkları kayda hızlıca ulaşmasını sağlar.
Senaryoda:
Siparişler, sipariş tarihine göre en güncel kayıt en üstte olacak şekilde Tabloda listelenir.
Ekranda aynı anda sınırlı sayıda kayıt gösterilir ve her sayfa belirli sayıda siparişi içerir.
Kullanıcı, sayfa numaraları veya ileri–geri okları aracılığıyla sayfalar arasında geçiş yapabilir.
Sayfa başına gösterilecek kayıt sayısı kullanıcı tarafından seçilebilir.
“Go to page” alanı ile istenilen sayfaya doğrudan geçiş yapılabilir.
Adım 1 - Veri Kaynağı Oluşturma
DataSources modülünde tablo oluşturma:
Datasources modülüne gidin.
Ardından Tables sekmesine gidin.
“Orders” adında yeni tablo oluşturun.
Kurulması gereken tablo yapısı aşağıdaki gibidir:
Önemli Alan adları:
CustomerName: Siparişi veren müşterinin adını tutar.
OrderDate: Siparişin oluşturulduğu tarih ve saati ifade eder.
OrderNumber: Siparişe ait takip numarasını belirtir.
Status: Siparişin mevcut durum bilgisini gösterir.
TotalAmount: Siparişin toplam tutarını ifade eder.
SalseRevenue: İlgili kategorinin toplam satış gelirini (ciro) belirtir.
Adım 2 - Gerekli Aksiyonların Tanımlanması
Arayüzde verileri göstermek ve veri eklemek için:
Üç Custom aksiyon tanımlamanız gerekir.
Datasources modülü içerisinde Actions > New SQL Action sekmesinden yeni aksiyon ekleyin.
Başlangıç sayfasını Pagination > Properties > Current > 1 olarak ayarlayın.
Daha az sayfa numarası gösterimi için Pagination > Properties > ShowLessItems > Açık olarak ayarlayın.
Sayfa numarasına doğrudan geçiş yapabilmek için Pagination > Properties > ShowQuickJumper > Açık olarak ayarlayın.
Sayfadaki veri sayısını seçebilmek için Pagination > Properties > ShowSizeChanger > Açık olarak ayarlayın.
Veri sayısını seçebilmek için Pagination > Properties > ShowSizeOptions > Action > Fixed Option List tanımlamasını yapın. İsteğe bağlı olarak sayfa sayısını aksiyonla dinamik şekilde de sağlayabilirsiniz.
Sabit değerleri sağlamak için Fixed Data alanında aşağıdaki tanımlamayı yapın.
İlk sayfaya hızlı dönüş için Pagination > Properties > ShowFirstPageButton > Açık olarak ayarlayın.
Son sayfaya hızlı dönüş için Pagination > Properties > ShowLastPageButton > Açık olarak ayarlayın.
Sayfa ayarlarına ulaşmak için alt kısımda yer breadcrumb üzerinden sayfa adına tıklayın. Mevcut senaryoda isim PaginationScreen olarak kullanılmıştır.
Properties kısmında aksiyonlar alanında eklediğimiz GetPagedOrders aksiyonunda CurrentPage ve PageSize alanlarını Pagination Elementi üzerinden tanımlayın.
CurrentPage alanına Components > Pagination > current tanımlamasını yapın.
PageSize alanına Components > Pagination > current tanımlamasını yapın.
Benzer şekilde arkasından Add Action > onChange > Custom > Managed DB > GetPagedOrders aksiyonunu ekleyin.
GetPagedOrders içerisine Adım 3.23 ve 3.24’teki gibi CurrentPage>Components > Pagination > current ve PageSize>Components > Pagination > current tanımlamalarını yapın.
Preview
Uygulama test edildiğinde, Order List ekranı, sipariş kayıtlarının tarih bazlı olarak listelendiği ve sayfalama (pagination) ile yönetildiği bir listeleme yapısı sunar. Siparişler en güncel kayıt en üstte olacak şekilde sıralanır ve ekranda belirlenen kayıt sayısı kadar veri gösterilir.
Kullanıcı, alt alanda yer alan sayfa numaraları ve ileri–geri okları ile sayfalar arasında geçiş yapabilir. Sayfa başına gösterilecek kayıt sayısı “per page” seçeneği üzerinden değiştirilebilir ve “Go to page” alanı ile istenilen sayfaya doğrudan erişim sağlanır. Bu yapı sayesinde uzun sipariş listeleri düzenli, okunabilir ve kullanıcı dostu bir şekilde görüntülenir.
4. Ortak Özellikler (Properties)
Pagination elementi üzerinde yer alan bazı alanlar tüm UI elementlerinde ortak olarak kullanılır. Bu nedenle, aşağıdaki özelliklerin detaylı açıklamaları ilgili genel kılavuz sayfalarında yer almaktadır:
Pagination elementini mutlaka veri tekrarlayıcı elementlerle (Table, Gallery View vb.) birlikte kullanın. Tek başına veri göstermez, yalnızca sayfalama kontrolü sağlar.
Mobil ekranlarda çok fazla sayfa numarası göstermek yerine, sade bir sayfalama yapısı tercih edin.
6. Kısıtlamalar
Pagination elementi tek başına veri göstermez; mutlaka bir veri kaynağına bağlı liste, tablo veya grid ile birlikte kullanılmalıdır.
onChange dışında başka bir tetikleyici (onClick, onInit vb.) desteklemez.
Veri kaynağı aksiyonu onChange ile yeniden çağrılmazsa, sayfa numarası değişse bile içerik güncellenmez.
Pagination, yalnızca sayfa kontrolünü yönetir; filtreleme, sıralama veya veri doğrulama işlemlerini kendi başına yapmaz.