Bu iş için iki yaklaşım var.
I. Yaklaşım : Eager initilization
Bunun anlamı tam olarak şudur. Ben tabloma, database'deki verileri bir kerede hepsini doldururum. Bu yaklaşım pek sağlıklı değildir. Çünkü senin 10bin kaydın varsa sen bu datayı 1 seferde db'den okutup, tarayıcı arayüzüne basmak istediğinde tarayıcı dönüp, durur:)
II. Yaklaşım : Lazy Initilization
Bu ise datanın database'den sayfanda kaç kayıt görünmesini istiyorsan, o kadarının çekilmesi anlamına geliyor. Mesela sen 20 kayıt çekip göstereceksen. Tablona yaptığın sıralamaya göre ilk 20 kaydı döker.
Ek olarak, jQuery'nin datatable'ları var, dizayn ve sayfalama için oldukça güzel.
Burada jQuery datatable ve lazy initilization örnek mevcut kaynak kodlarıyla;
http://datatables.net/examples/data_sources/server_side.html