Saat menulis kelas paging, saya menemui masalah yang sangat cerdik dalam meneruskan referensi objek kelas. Jika saya menjelaskan apa yang terjadi di sini, mungkin akan sulit bagi semua orang untuk memahaminya dengan jelas kelas CPaging.
Copy kode kodenya sebagai berikut:
CPaging Kelas
Objek RecordSet RS Publik
Label penunjuk Tanda Publik '
Ukuran Pribadi ' Jumlah tampilan per halaman
Private sTotal 'Jumlah total catatan
sPage Pribadi 'Nomor halaman saat ini
Private sCount 'Total nomor halaman
Sub Kelas Pribadi_Inisialisasi
sUkuran = 20
sHalaman = 1
hitungan = 1
Akhiri Sub
Sub Kelas Pribadi_Terminate
Tutupobj RS
Akhiri Sub
'Tampilkan nomor per halaman
Properti Biarkan Ukuran (Nilai)
sUkuran = Nilai
Properti Akhir
Properti Dapatkan Ukuran
Ukuran=sUkuran
Properti Akhir
'Nomor halaman saat ini
Halaman Izin Properti (Nilai)
Jika Bukan IsNumeric(Nilai) Lalu
sHalaman = 1
Kalau tidak
sHalaman = Nilai
Akhiri Jika
Properti Akhir
Halaman Dapatkan Properti
Jika (sHalaman - 1) * sUkuran > sTotal Lalu
Jika sTotal Mod sSize = 0 Maka
Halaman=Total/Ukuran
Kalau tidak
Halaman = Total / Ukuran +1
Akhiri Jika
ElseIf sPage < 1 Lalu
Halaman=1
Kalau tidak
Halaman=sHalaman
Akhiri Jika
Properti Akhir
'Total nomor halaman
Hitungan Dapatkan Properti
Jika sTotal Mod sSize = 0 Maka
Hitungan = sTotal / sUkuran
Kalau tidak
Hitungan = sTotal / sUkuran + 1
Akhiri Jika
Properti Akhir
'Jumlah total catatan
PropertiDapatkanTotal()
Jumlah = sTotal
Properti Akhir
Fungsi Publik Terbuka (Byval SQLString)
Coba DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
Fungsi Akhir
Kelas Akhir
Berikut ini adalah halaman panggilan
Copy kode kodenya sebagai berikut:
Produk Redup
Tetapkan Produk = CPaging Baru
Dengan Produk
.Ukuran = 15 'Jumlah tampilan per halaman
.Page = PageNum 'Halaman saat ini
Akhiri Dengan
Coba Produk.Buka(ListSQL)
Jika Products.RS.Bof dan Products.RS.Eof maka
Response.Write(<TR><TD colspan=8>Tidak menemukan catatan</TD></TR>)
Kalau tidak
Redupkan saya
saya = 0
Produk.RS.Move (Produk.Halaman - 1) * Produk.Ukuran
Lakukan Saat Bukan Produk.RS.Eof
Response.Write(<TR onmouseup=MouseUp(ini); onmousedown=MouseDown(ini); onmouseover=MouseOver(ini); onclick=Klik(ini); onmouseout=MouseOut(ini);>&vbCrLf)
Response.Write(<TD align=middle nowrap> & Produk.RS(ProductsClassName) & </TD>&vbCrLf)
Response.Write(<TD align=left nowrap> & Produk.RS(Nama Produk) & </TD>&vbCrLf)
Respon.Tulis(</TR>&vbCrLf)
saya=saya+1
Jika i >= Produk.Ukuran Lalu Keluar Lakukan
Produk.RS.MoveNext
Lingkaran
Akhiri Jika
Ketika saya melihat baris 8, saya seperti melihat sekilas bayangan .net - namespace?