(Vince6799 asli)
Paging dalam kode asp agak merepotkan, saya pribadi menulis kode paging menjadi dua fungsi selama proses penulisan kode.
<%
'Fungsi paging dibagi menjadi dua fungsi
Fungsi perhitungan paging 'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs)
Fungsi penghitungan
halaman 'PageList(ListType,url,querry,Separator,ListLink)'
'totalrec jumlah total kumpulan rekor
'msg_per_page Jumlah catatan yang ditampilkan pada setiap halaman. Variabel ini perlu ditetapkan terlebih dahulu saat memanggil CalcPage.
'Variabel halaman saat ini halaman saat ini, Anda perlu menetapkan nilai ke variabel ini terlebih dahulu saat memanggil CalcPage
'n jumlah halaman total
'rowcount menetapkan jumlah catatan data per halaman
'Objek kumpulan data PageRs
sub CalcPage(totalrec,msg_per_page,halaman saat ini,n,jumlah baris,PageRs)
n=0 'Atur nomor halaman ke 0 bila tidak ada catatan
jika halaman saat ini = "" maka halaman saat ini = 0
'PageRs.EOF dan PageRs.bof tidak ada catatan
'Tidak PageRs.EOF Atau Tidak PageRs.BOF dicatat
jika Bukan PageRs.EOF Atau Bukan PageRs.BOF maka
totalrec=PageRs.jumlah catatan
PageRs.pagesize=msg_per_page
if totalrec mod msg_per_page = 0 maka 'Hitung jumlah total halaman, recordcount: jumlah total record data
n = totalrecmsg_per_page 'n:Jumlah total halaman
kalau tidak
n = totalrecmsg_per_page+1
berakhir jika
jika bukan isnumerik(halaman saat ini) atau halaman saat ini="" maka halaman saat ini=1
Jika halaman saat ini <> "" maka
halaman saat ini = cint(halaman saat ini)
berakhir jika
jika halaman saat ini < 1 maka
halaman saat ini = 1
berakhir jika
jika currentpage*msg_per_page > totalrec dan not((currentpage-1)*msg_per_page < totalrec) maka
Halaman saat ini=1
berakhir jika
PageRs.absolutepage = currentpage 'absolutepage: Mengatur penunjuk ke awal halaman
rowcount = PageRs.pagesize 'pagesize: Mengatur jumlah record data untuk setiap halaman
berakhir jika
sub akhir
%>
<%
'Fungsi daftar halaman
'alamat lompat url
'kueri? Parameter setelahnya?
'Pemisah pemisah
'Jenis paging ListType
'Ketik:0 "Halaman pertama | Halaman sebelumnya | Halaman berikutnya | Halaman terakhir"
'Ketik:1 "1 | 2 | 3 | 4 | ..........| Halaman berikutnya"
'Ketik: 2 "Halaman pertama | Sepuluh halaman pertama | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Sepuluh halaman berikutnya | Halaman terakhir"
'Gaya yang digunakan oleh
sub tautan ListLink PageList(ListType,url,querry,Separator,ListLink)
jika Pemisah = "" maka Pemisah = "|"
jika ListType="" maka ListType="0"
pilih kasus ListType
kasus "0"
respon.tulis""&halaman saat ini&"/"&n&"halaman "
respon.tulis "Total"&totalrec&" potongan informasi "
jika halaman saat ini <= 1 maka
respon.tulis"Halaman pertama "&Pemisah&" "
respon.write"Halaman sebelumnya "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">Halaman pertama</a> "&Pemisah&" "
respon.write"<a href="""&url&"?page="¤tpage-1&"&"&querry&""" class="""&ListLink&""">Halaman sebelumnya</a> "&Separator&"  ; "
berakhir jika
jika halaman saat ini = n maka
respon.tulis"Halaman berikutnya "&Pemisah&" "
respon.tulis"Halaman terakhir "
kalau tidak
respon.write"<a href="""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">Halaman berikutnya</a> "&Separator&"  ; "
respon.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">Halaman terakhir</a> "
berakhir jika
kasus "1"
jika halaman saat ini < n maka
respon.write"<a href="""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">Halaman berikutnya</a> "
kalau tidak
respon.tulis"Halaman berikutnya "
berakhir jika
untuk i=1 sampai n
jika cstr(i)=cstr(halaman saat ini) maka
respon.tulis "<b>"&i&"</b>"&" "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page="&i&"&"&querry&""" class="""&ListLink&""">"&i&"</a> "&Pemisah&" "
berakhir jika
Berikutnya
kasus "2"
PageMerCout=10 'Jumlah maksimum halaman yang dapat dibalik setiap kali
'Dapatkan segmen nomor halaman maksimum dari catatan
jika n mod PageMerCout=0 maka
MaxPageFiled=nPageMerCout
kalau tidak
MaxPageFiled=nPageMerCout+1
berakhir jika
'Tentukan segmen nomor halaman di mana halaman saat ini berada
jika mod halaman saat ini PageMerCout =0 maka
CurrPageFiled=halaman saat iniPageMerCout
kalau tidak
CurrPageFiled=halaman saat iniPageMerCout+1
berakhir jika
'Dapatkan nomor halaman maksimum dan nomor halaman minimum dari segmen nomor halaman saat ini
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
'Keluaran "halaman pertama | sepuluh halaman pertama |"
jika halaman saat ini<=1 maka
respon.tulis"Halaman pertama "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">Halaman pertama</a> "&Pemisah&" "
berakhir jika
jika CurrPageFiled<=1 maka
respon.write"Sepuluh halaman pertama "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page="&MinPageNo-PageMerCout&"&"&querry&""" class="""&ListLink&""">Sepuluh halaman pertama</a> "&Separator&"  ;"
berakhir jika
'Keluarkan segmen nomor halaman saat ini
untuk i=MinPageNo hingga MaxPageNo
jika saya<=n maka
jika cstr(i)=cstr(halaman saat ini) maka
respon.tulis "<b>"&i&"</b>"&" "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page="&i&"&"&querry&""">"&i&"</a> "&Pemisah&" "
berakhir jika
berakhir jika
Berikutnya
'Keluaran "sepuluh halaman berikutnya | halaman terakhir"
jika CurrPageFiled>=MaxPageFiled maka
respon.write"Sepuluh halaman berikutnya "&Pemisah&" "
kalau tidak
respon.write"<a href="""&url&"?page="&MaxPageNo+1&"&"&querry&""" class="""&ListLink&""">Sepuluh halaman berikutnya</a> "&Separator&"   ;"
berakhir jika
jika halaman saat ini>=n maka
respon.tulis"Halaman terakhir "
kalau tidak
respon.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">Halaman terakhir</a> "
berakhir jika
akhir pilih
sub akhir
%>