เมื่อเขียนคลาสเพจ ฉันพบปัญหาที่ชาญฉลาดมากในการส่งผ่านการอ้างอิงอ็อบเจ็กต์คลาส ถ้าฉันอธิบายสิ่งที่เกิดขึ้นที่นี่ อาจเป็นเรื่องยากสำหรับทุกคนที่จะเข้าใจอย่างชัดเจน เป็นการดีกว่าที่จะดูโค้ดซึ่งใช้เพจ คลาส CPaging
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาส CPaging
วัตถุชุดระเบียน RS สาธารณะ
ป้ายตัวชี้เครื่องหมายสาธารณะ '
sSize ส่วนตัว ' จำนวนการแสดงต่อหน้า
ส่วนตัว sTotal 'จำนวนบันทึกทั้งหมด
sPage ส่วนตัว 'หมายเลขหน้าปัจจุบัน
ส่วนตัว sCount 'หมายเลขหน้าทั้งหมด
คลาสย่อยส่วนตัว_เริ่มต้น
ขนาด = 20
สเพจ = 1
จำนวนนับ = 1
จบหมวดย่อย
Class_Terminate ย่อยส่วนตัว
ปิดobj RS
จบหมวดย่อย
'แสดงหมายเลขต่อหน้า
อสังหาริมทรัพย์ ขนาดให้เช่า(มูลค่า)
ขนาด = ค่า
สิ้นสุดคุณสมบัติ
คุณสมบัติรับขนาด
ขนาด=sขนาด
สิ้นสุดคุณสมบัติ
'หมายเลขหน้าปัจจุบัน
อสังหาริมทรัพย์ ให้เพจ(มูลค่า)
ถ้าไม่ใช่ IsNumeric(Value) แล้ว
สเพจ = 1
อื่น
sPage = ค่า
สิ้นสุดถ้า
สิ้นสุดคุณสมบัติ
หน้ารับคุณสมบัติ
ถ้า (sPage - 1) * sSize > sTotal จากนั้น
ถ้า sTotal Mod sSize = 0 แล้ว
หน้า=ผลรวม/ขนาด
อื่น
หน้า = รวม / ขนาด +1
สิ้นสุดถ้า
ElseIf sPage < 1 จากนั้น
หน้า=1
อื่น
หน้า=sPage
สิ้นสุดถ้า
สิ้นสุดคุณสมบัติ
'จำนวนหน้าทั้งหมด
คุณสมบัติรับการนับ
ถ้า sTotal Mod sSize = 0 แล้ว
จำนวน = sTotal / sSize
อื่น
จำนวน = sTotal / sSize + 1
สิ้นสุดถ้า
สิ้นสุดคุณสมบัติ
'จำนวนบันทึกทั้งหมด
คุณสมบัติ GetTotal()
ยอดรวม = ยอดรวม
สิ้นสุดคุณสมบัติ
เปิดฟังก์ชั่นสาธารณะ (Byval SQLString)
ลอง DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
สิ้นสุดฟังก์ชัน
จบคลาส
ต่อไปนี้เป็นหน้าการโทร
คัดลอกรหัสรหัสดังต่อไปนี้:
ผลิตภัณฑ์ติ่มซำ
ชุดผลิตภัณฑ์ = CPaging ใหม่
ด้วยผลิตภัณฑ์
.Size = 15 'จำนวนการแสดงต่อหน้า
.Page = PageNum 'หน้าปัจจุบัน
จบด้วย
ลอง Products.Open (ListSQL)
ถ้า Products.RS.Bof และ Products.RS.Eof แล้ว
Response.Write(<TR><TD colspan=8>ค้นหาไม่มีบันทึก</TD></TR>)
อื่น
ดิม ไอ
ฉัน = 0
สินค้าRS.Move (Products.Page - 1) * สินค้า.Size
ทำในขณะที่ไม่ใช่ผลิตภัณฑ์RS.Eof
Response.Write(<TR onmouseup=MouseUp(this); onmousedown=MouseDown(this); onmouseover=MouseOver(this); onclick=Click(this); onmouseout=MouseOut(this);>&vbCrLf)
Response.Write(<TD align=middle nowrap> & Products.RS(ProductsClassName) & </TD>&vbCrLf)
Response.Write(<TD align=left nowrap> & Products.RS(ชื่อผลิตภัณฑ์) & </TD>&vbCrLf)
การตอบกลับเขียน(</TR>&vbCrLf)
ฉัน=ฉัน+1
ถ้า i >= Products.Size แล้วออกจาก Do
สินค้าRS.MoveNext
วนซ้ำ
สิ้นสุดถ้า
เมื่อฉันเห็นบรรทัดที่ 8 ฉันดูเหมือนจะเหลือบมองเงาของ .net - เนมสเปซใช่ไหม