หน้านี้ใช้ 0 เคอร์เซอร์นั่นคือ Rs.Open SQL, Conn, 0,1 แต่มันไม่รู้สึกว่ามันเร็วกว่ามากและเวลาเพจของข้อมูล 100,000 ชิ้นนั้นมากกว่า 300 วินาที
การคัดลอกรหัสมีดังนี้:
-
-
'ชื่อ: คลาส Pagination
'วันที่: 2005/12/3
'ผู้แต่ง: Leng Yue, Xilou
'เว็บไซต์: www.xilou.net | www.chinacms.org
'คำอธิบาย: ไม่มี
'ลิขสิทธิ์: โปรดดูแหล่งที่มาสำหรับการพิมพ์ซ้ำผู้เขียน
-
หน้าชั้นเรียน
currpage ส่วนตัว
ซากศพส่วนตัว
urlstr ส่วนตัว
อุณหภูมิส่วนตัว
ส่วนตัว Errinfo
ISERR ส่วนตัว
TotalRecord ส่วนตัว
หน้ารวมส่วนตัว
อวกาศสาธารณะ
จังหวะส่วนตัว (11)
Tempb ส่วนตัว (8)
-
คลาสย่อย class_initialize ()
currpage = 1 '// การแสดงผลเริ่มต้นของหน้าปัจจุบันคือหน้าแรก
pagen = 10 '// ข้อมูลเริ่มต้น 10 ชิ้นจะปรากฏขึ้นต่อหน้า
urlstr = "#"
tempstr = ""
errinfo = "errinfo:"
iserr = false
สิ้นสุดย่อย
คลาสย่อย class_terminate ()
ถ้า isObject (การ์ดอวกาศ) จากนั้น
Pagers.close
Set Pagers = ไม่มีอะไร
สิ้นสุดถ้า
ลบจังหวะ
ลบ Tempb
สิ้นสุดย่อย
-
'// รับหมายเลขหน้าปัจจุบัน
ทรัพย์สินสาธารณะให้ CurrentPage (VAL)
currpage = val
จุดสิ้นสุดของทรัพย์สิน
ทรัพย์สินสาธารณะรับ CurrentPage ()
currentPage = currpage
จุดสิ้นสุดของทรัพย์สิน
'// รับจำนวนชิ้นส่วนที่แสดงต่อหน้า
ทรัพย์สินสาธารณะให้ Pagenum (Val)
pagen = val
จุดสิ้นสุดของทรัพย์สิน
ทรัพย์สินสาธารณะรับ pagenum ()
pagenum = pagen
จุดสิ้นสุดของทรัพย์สิน
'// รับ URL
ทรัพย์สินสาธารณะให้ URL (VAL)
urlstr = val
จุดสิ้นสุดของทรัพย์สิน
ทรัพย์สินสาธารณะรับ URL ()
url = urlstr
จุดสิ้นสุดของทรัพย์สิน
'// รับเทมเพลต
ทรัพย์สินสาธารณะให้อุณหภูมิ (VAL)
tempstr = val
จุดสิ้นสุดของทรัพย์สิน
ทรัพย์สินสาธารณะรับอุณหภูมิ ()
temp = tempstr
จุดสิ้นสุดของทรัพย์สิน
-
Public Sub Exec (SQL, ConnobJ)
เมื่อเกิดข้อผิดพลาดต่อไป
ตั้งค่า pagers = server.createObject ("adodb.recordset")
Pagers.CursorLocation = 3 'การใช้เคอร์เซอร์ไคลเอนต์สามารถปรับปรุงประสิทธิภาพได้
pagers.pagesize = pagen 'กำหนดชุดบันทึกหน้าชุดบันทึกที่แสดงต่อหน้า
pagers.open sql, connobj, 0,1
ถ้า err.number <> 0 แล้ว
err.lear
Pagers.close
Set Pagers = ไม่มีอะไร
errinfo = errinfo & "ข้อผิดพลาดในการสร้างหรือเปิดชุดบันทึก ... "
iserr = true
Response.write errinfo
Response.end
สิ้นสุดถ้า
TotalRecord = Pagers.recordCount '// จะเกิดอะไรขึ้นถ้าเป็น 0?
ถ้า TotalRecord> = 1 แล้ว
'----------------------------------------------------------------------------เริ่ม
'// คำนวณจำนวนหน้าทั้งหมด, PS, ทำไมไม่ใช้ pagers.pagecount?
'ถ้า TotalRecord mod pagen = 0 แล้ว
'TotalPage = pagers.recordCount/pagen
'อื่น
'TotalPage = pagers.recordCount/pagen
'TotalPage = ABS (int (TotalPage))
'สิ้นสุดถ้า
TotalPage = pagers.pagecount
'// ประมวลผลหมายเลขหน้าปัจจุบันที่ได้รับค่าเริ่มต้นคือ 1 ดังนั้นหากคุณไม่ใช่ประเภทตัวเลขคุณจะเป็น 1
ถ้า isnumeric (currpage) แล้ว