Fungsi implementasi program: tampilan halaman data dalam dua tabel data.
Baru-baru ini, saya menemukan persyaratan yang relatif jarang. Saya ingin tahu apakah Anda juga menemukannya, jadi saya ingin membaginya dengan Anda.
Persyaratan pelanggan: dua bagian data, dua dari lokasi yang berbeda. Kedua tabel dalam database didefinisikan sebagai database DB1 dan DB2, dan tabel Tabel1 dan Tabel2 masing-masing harus ditampilkan di bagian atas dan bawah halaman, dan nomor paging yang sama harus digunakan, seperti data bagian pertama. Jika tidak cukup, data bagian kedua akan diisi
'/*code*/
<%
Set objConn1=Server.CreateObject("ADODB.Recordset")
Setel objConn2=Server.CreateObject("ADODB.Recordset")
objConn1.Buka "PROVIDER=SQLOLEDB;SUMBER DATA=localhost;UID=sa;PWD=123;DATABASE=DB1"
objConn2.Buka "PROVIDER=SQLOLEDB;SUMBER DATA=localhost;UID=sa;PWD=123;DATABASE=DB2"
Halaman=CLng(Request.QueryString("Halaman"))
jika halaman = "" maka
halaman=1
berakhir jika
StrSQL1="pilih * dari Tabel1 urutan berdasarkan ID desc"
StrSQL2="pilih * dari Tabel2 diurutkan berdasarkan ID desc"
record_count1=Clng(objConn1.execute(StrSQL1)(0)) 'Dapatkan jumlah record di tabel pertama
record_count2=Clng(objConn2.execute(StrSQL2)(0))'Dapatkan jumlah record di tabel kedua
record_count=record_count1+record_count2 'Dapatkan jumlah record dalam dua tabel dan
Jika record_count>0 Maka
page_size1=5 'Jumlah default bagian data yang ditampilkan di tabel pertama per halaman
page_size2=5 'Default menampilkan jumlah data parsial pada tabel kedua per halaman
page_count1=CInt(record_count1/page_size1)
If (record_count1 Mod page_size1)<(page_size1/2) Then page_count1=page_count1+1 'Dapatkan nomor halaman dari bagian pertama data
page_count2=CInt(record_count2/page_size2)
If (record_count2 Mod page_size2)<(page_size2/2) Then page_count2=page_count2+1'Dapatkan nomor halaman dari data bagian kedua
jika Cint(page_count2)=cint(page) lalu 'Asumsikan bagian kedua dari data harus lebih sedikit, di sini tentukan apakah Halaman saat ini adalah halaman terakhir dengan data lebih sedikit
thepageRecordcount=record_count2-(page-1)*5 'Jumlah data yang ditampilkan pada halaman terakhir dari bagian kedua data
page_size1=10-cint(thepageRecordcount) 'Jumlah item yang ditampilkan pada halaman terakhir bagian kedua dari data bagian pertama'
page_size1=cint(thepageRecordcount) 'Dapatkan jumlah item yang ditampilkan di bagian pertama halaman ini
elseif cint(page)>cint(page_count2) lalu 'Setelah ini, semua bagian pertama data akan menjadi
page_size1=10
page_size2=0
berakhir jika
page_count=CInt(record_count/(page_size1+page_size2) 'Jumlah halaman di kedua kategori secara bersamaan
Jika (record_count Mod (page_size1+page_size2))<((page_size1+page_size2)/2) Maka page_count=page_count+1
Jika Halaman < 1 Maka
Halaman=1
Akhiri Jika
Jika Halaman > page_count Lalu
Halaman = jumlah_halaman
Berakhir Jika
Halaman Meredupdari,Halamanke
Halamandari=halaman-10
Halamanke=halaman+10
jika Halamandari<1 maka
Halamandari=1
berakhir jika
jika Pageto>record_count maka
Halamanke=jumlah_halaman
berakhir jika
Akhiri Jika
Jika Halaman<=1 Lalu 'Tampilkan kueri di halaman pertama
StrSQL1="Pilih Teratas "&page_size1&" * Dari Tabel1 "
StrSQL1=StrSQL1&" Deskripsi Pesan Berdasarkan ID"
StrSQl2="Pilih Teratas "&page_size1&" * Dari Tabel2 "
StrSQL2=StrSQL2&" pesan berdasarkan deskripsi id"
Lain 'Tampilkan kueri di halaman N
StrSQL1="Pilih Atas "&(Halaman-1)*page_size1&" ID Dari Tabel1 "
StrSQL1=StrSQL1&" Pesan Berdasarkan ID Desc"
StrSQL1="PILIH 1 ID Teratas Dari ("&StrSQL1&") DERIVEDTBL Pesan Berdasarkan id "
'Respon.Tulis(SQL)
id =Trim(objConn1.execute(StrSQL1)(0))
StrSQL1="Pilih Teratas "&page_size1&" * Dari Tabel1"
StrSQL1=StrSQL1&" di mana id<'"&id&"'"
StrSQL1=StrSQL1&" Pesan Berdasarkan ID Desc"
StrSQL2="Pilih Teratas "&(Halaman-1)*page_size2&" id Dari Tabel2 "
StrSQL2=StrSQL2&" Pesan Berdasarkan ID Des"
StrSQL2="PILIH 1 id Teratas Dari ("&StrSQL2&") DERIVEDTBL Pesan Berdasarkan id "
id =Trim(objconn2.execute(StrSQL2)(0))
StrSQL2="Pilih Atas "&page_size2&" * Dari Tabel2 "
StrSQL2=StrSQL2&" di mana id<'"&id &"'"
StrSQL2=StrSQL2&" Pesan Berdasarkan id Desc"
Berakhir Jika
%>
<%
Jika record_count>0 Lalu
%>
<%
Setel Rs1=Server.CreateObject("Adodb.Recordset")
rs1.openStrSQL1,objconn1
Untuk n = 1 Sampai ukuran_halaman1
Jika rs1.Eof Kemudian Keluar Untuk
%>
<!--Bagian pertama dari loop konten yang ditampilkan-->
<%
rs1.PindahBerikutnya
Jika rs1.EOF Lalu Keluar Untuk
Berikutnya
rs1.tutup
atur rs1=tidak ada
%>
<%
Setel Rs2=Server.CreateObject("Adodb.Recordset")
rs2.openStrSQL2,objconn2
Untuk n = 1 Sampai ukuran_halaman2
Jika rs2.Eof Kemudian Keluar Untuk
%>
<!--Bagian kedua dari loop konten yang ditampilkan-->
<%
rs2.PindahBerikutnya
Jika rs2.EOF Kemudian Keluar Untuk
Berikutnya
rs2.tutup
atur rs2=tidak ada
%>
<!--Nomor halaman hasil-->
<%if halaman<>"1" lalu%><a href=?page=<%=Cint(halaman-1)%>>Halaman sebelumnya</a> <%end if%>
<% 'Gunakan perulangan for untuk menuliskan koneksi nomor halaman
Untuk i=Halamandari ke Halamanke
jika i=0 maka
saya=1
berakhir jika
jika i<>Cint(halaman) lalu
strurl="<a href=?page="&i&"><font color=#000000>"&i&"</font></a>"
lain
strrl="<b><font color=#ce0031>"&i&"</font></b>"
akhiri jika
respon.tulis strrl
respon.tulis " "
Berikutnya
%>
<%jika jumlah_halaman =1 atau (jumlah_halaman-Cint(halaman))=0 maka
respon.Tulis("")
kalau tidak
respon.Tulis "<a href=?page="&Cint(page+1)&">Halaman selanjutnya</a>"
berakhir jika
%>
<!--Nomor halaman hasil-->
'/*Akhir kode*/
Level saya terbatas, programnya kasar, mungkin ada kekurangan~Saya harap Anda dapat mengkritik dan mengoreksi saya~