หน้าบทความยาวๆ จะแสดงขึ้นโดยมีตัวแบ่งหน้า ฉันต้องการใช้ ASP เพื่อใช้ฟังก์ชันนี้ แต่ฉันพบว่ามีวิธีแบ่งหน้าตามจำนวนคำเท่านั้น แต่วิธีนี้มีข้อบกพร่อง นั่นคือ ถ้ามี เป็นรหัส UBB ในเนื้อหาบทความของคุณ มันง่ายมาก ทำให้เกิดการแบ่งหน้าระหว่าง [code][/code] หรือแยกย่อย [code] เป็น [co และ de] ทำให้เกิดข้อผิดพลาดในการแสดงบทความ
ขั้นตอนต่อไปนี้จะทำให้สิ่งนี้เป็นไปได้
ขั้นตอนที่ 1:
ปฏิบัติตามระบบบทความปกติทั้งหมด การเพิ่มบทความในพื้นหลัง การดึงบทความ และหน้ารายละเอียดของบทความจะดำเนินการตามปกติ ไม่มีคำอธิบายที่นี่ เมื่อเพิ่มบทความ ให้เพิ่มตัวแบ่งหน้าในตำแหน่งที่คุณต้องการให้เพจ: "|||" (แน่นอนว่าคุณสามารถใช้สัญลักษณ์นี้แบบไม่เป็นทางการได้ เช่น: [page], &&&, ###, @@@ ... ตราบใดที่ไม่ปรากฏตรงที่บทความจะแสดงตามปกติ)
ฉันใช้สี่หน้า, หน้าอินพุต (index.asp), หน้ากรอกอินพุต (add.asp), หน้ารายการบทความ (ดู .asp) หน้าเนื้อหาบทความ (display.asp) สามหน้าแรกเป็นหน้าที่ไม่จำเป็นต้องประมวลผล ดูภาพด้านล่าง ผมว่านกธรรมดาก็สามารถทำได้ รหัสทั้งหมดสำหรับการเพจอยู่ที่นี่
ขั้นตอนที่ 2:
ทำเคล็ดลับในส่วนข้อมูลไดนามิกของเนื้อหาบทความ ต่อไปนี้คือโค้ดและคำอธิบาย:
<%
'ที่นี่เราจำเป็นต้องประมวลผลพารามิเตอร์เพจที่ได้รับเพื่อแสดงเนื้อหาของเพจใด
'สองประโยคต่อไปนี้คือให้ตัวแปร pageNum รับค่าของหน้าแรกหากไม่มีการส่งผ่านพารามิเตอร์ของหน้า: 0
ถ้า Request("page")="" จากนั้น
หน้าหมายเลข=0
'มิฉะนั้น ให้กำหนดค่าให้กับตัวแปรเป็นพารามิเตอร์ในเพจที่ส่งไปเพื่อแสดงเพจอื่น
อื่น
pageNum=คำขอ("หน้า")
จบถ้า
-
-
'หากคุณเพิ่มรหัสปฏิบัติการ UBB คุณสามารถเพิ่มรหัสต่อไปนี้ได้
'rs("NoUBB") เป็นฟิลด์ในฐานข้อมูลเกี่ยวกับการปิดการใช้งาน UBB, 0 หมายถึงปิดการใช้งาน, 1 หมายถึงดำเนินการแล้ว
ถ้า rs("NoUBB")=0 แล้ว
'เพื่อหลีกเลี่ยงข้อผิดพลาดในการเชื่อมต่อกับเนื้อหาของบทความ ให้ใช้ฟังก์ชันแทนที่เพื่อเพิ่มความกว้างเต็มก่อนและหลังโค้ดเพจ "|||"
'rs("content") คือช่องข้อความในฐานข้อมูล เพิ่ม UBB ที่นี่หรือปิดใช้งาน UBB
เนื้อหา=แทนที่((unHTML(rs("เนื้อหา"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 แล้ว
เนื้อหา=แทนที่((ubb(rs("เนื้อหา"))),"|||"," ||| ")
จบถ้า
-
-
'นี่คือกุญแจ
'เราใช้ฟังก์ชันแยกเพื่อแยกบทความออกเป็นส่วนๆ และจัดเก็บไว้ในเนื้อหาที่แปรผัน
ContentStr=split(เนื้อหา,"|||")
'ตามตัวแปรที่จะแสดงเพิ่งได้รับจากพารามิเตอร์ URL หน้าจะถูกแสดงเป็นวง
สำหรับ i=pageNum ถึง pageNum
-
<!--นี่คือข้อความของบทความ-->
<%=ContentStr %>
<% ถัดไป %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">บทความนี้แบ่งออกเป็น
-
'ในพื้นที่การเพจ ให้ใช้ ubound(ContentStr) เพื่อดูว่าบทความแบ่งออกเป็นกี่หน้า โปรดทราบว่าเริ่มจาก 0 ดังนั้นจึงต้องเพิ่มจำนวนหน้าทั้งหมดด้วย 1
สำหรับ p = 0 ถึง ubound(ContentStr)
'ลิงก์ยังคงเป็นหน้านี้ แต่มีการเพิ่มพารามิเตอร์การเพจหลังจากพารามิเตอร์ ID บทความ: หน้า
-
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% ถัดไป %> หน้า
ง่ายมาก หากคุณลบความคิดเห็นทั้งหมดก็จะมีเพียง 15 บรรทัดเท่านั้น แต่ยังต้องมีการประมวลผลเพื่อให้สามารถเน้นหน้าก่อนหน้า หน้าถัดไป และหน้าปัจจุบันได้อย่างสมบูรณ์แบบ .
ได้รับการทดสอบแล้ว ยกเว้นในกรณีที่ตัวแบ่งหน้าปรากฏในบทความ ทุกประเภทจะไม่ผิดพลาด แน่นอน คุณสามารถเพิ่มจำนวน ||| เช่น: |||||| จากนั้นหก "|" หรือน้อยกว่านั้นก็ปรากฏในบทความ ทุกอย่างดีหมด แต่หากมีเกิน 6 หน้าก็จะแตกเป็นหน้าๆ