ยังคงมีผู้ติดตามจำนวนมากในบางฟอรัมเกี่ยวกับโปรแกรมเพจจิ้ง แต่มีเพียงโค้ดและไม่มีคำอธิบายโดยละเอียด สำหรับผู้เริ่มต้น สิ่งนี้จะไม่อนุญาตให้พวกเขาเชี่ยวชาญอย่างแท้จริง คราวนี้ฉันจะอธิบายรายละเอียดเกี่ยวกับเทคโนโลยีเพจจิ้ง ทุกคนเข้าใจเพจ ASP! ก่อนอื่นมาดูเอฟเฟกต์กันก่อน!
ดูที่ฟังก์ชัน: ขั้นแรกโปรแกรมเพจจะอ่านจำนวนบันทึกที่ตั้งไว้ล่วงหน้าในแต่ละหน้า นี่คือ 5 และรายการอื่นๆ จะแสดงในหน้าถัดไป ขณะเดียวกันจะแจ้งหมายเลขหน้าปัจจุบันรวม หมายเลขหน้าและหมายเลขบันทึกทั้งหมด เมื่อแสดงจำนวนหน้า เมื่อเป็นหน้าแรก ลิงก์ไปยังหน้าแรกและหน้าก่อนหน้าจะไม่ถูกต้อง หน้าถัดไปและหน้าสุดท้ายไม่ถูกต้อง
ต่อไป ฉันจะบอกวิธีสร้างเอฟเฟกต์เพจนี้ทีละขั้นตอนพร้อมตัวอย่าง
ขั้นแรก ฟิลด์ record_info ในฐานข้อมูลมีอยู่ในตารางข้อมูล (คุณอาจมีความเข้าใจบางอย่างเกี่ยวกับฐานข้อมูลเมื่อเรียนรู้เพจ ASP) ขั้นแรก ให้เชื่อมต่อกับฐานข้อมูลและเปิดชุดระเบียน
ต่อไปนี้เป็นเนื้อหาที่ยกมา:
-
ตั้งค่า conn=Server.CreateObject(Adodb.Connection)
connstr=provider=Microsoft.JET.OLEDB.4.0;แหล่งข้อมูล=&Server.MapPath(data.mdb)
conn.open constr
ตั้งค่า rs=Server.CreateObject(Adodb.Recordset)
sql=เลือก * จากข้อมูล
rs.open sql,conn,1,1
-
โค้ดนี้ไม่ได้อธิบายโดยละเอียด ฉันเชื่อว่าผู้เริ่มต้นจะเข้าใจมัน สำหรับคำอธิบายโดยละเอียด คุณสามารถอ่านบทช่วยสอน "การสอนวิธีใช้ ASP เพื่อสร้างสมุดเยี่ยม" ต่อไป นี่คือส่วนที่สำคัญกว่าของเพจ . มีเพียงสามบรรทัดเท่านั้น:
ต่อไปนี้เป็นเนื้อหาที่ยกมา:
-
rs.pagesize=5
curpage=Request.QueryString(เคอร์เพจ)
rs.absolutepage=curpage
-
ประโยคที่สอง:
rs.pagesize =5 หมายความว่าอย่างไร เป็นคุณสมบัติในตัวในอ็อบเจ็กต์ Recordset ฟังก์ชันคือระบุจำนวนระเบียนต่อหน้า เมื่อตั้งค่าเป็น 5 ทุก ๆ 5 ระเบียนจะถูกรวมเข้าด้วยกันเป็นหน้าเดียว จากนั้นใช้ rs หลังจากแบ่งเพจตาม .pagesize แล้ว 21 เรคคอร์ดนี้จะถูกแบ่งออกเป็น 5 เพจเพื่อแสดง
ประโยคที่สาม:
ส่วนใหญ่จะใช้สำหรับฟังก์ชันการเปลี่ยนหน้า Curpage ของพารามิเตอร์โพสต์ของ URL จะถูกส่งผ่านไปยังตัวแปร curpage จะได้รับจำนวนหน้าที่ผู้ดูต้องการเข้าถึง (คุณจะเข้าใจหลังจากรันตัวอย่าง)
ประโยคที่สี่:
rs.absolutepage นี่เป็นแอตทริบิวต์ในตัวด้วย ซึ่งหมายถึงการระบุค่าของตัวแปร curpage เป็นหน้าปัจจุบัน
ตอนนี้คุณสามารถแสดงบันทึกแบบวนซ้ำได้:
ต่อไปนี้เป็นเนื้อหาที่ยกมา:
-
สำหรับ i= 1 ถึง rs.pagesize
ถ้า rs.eof แล้ว
ออกเพื่อ
สิ้นสุดถ้า
-
<%=rs(record_info)%><br>
-
rs.movenext
ต่อไป
-
ประโยคที่สอง: ใช้ for loop เพื่อแสดงจำนวนบันทึกที่ระบุในแอตทริบิวต์ rs.pagesize ในแต่ละหน้า
ประโยคที่สาม สี่ และห้า: ประโยคนี้หมายถึงออกจากการวนซ้ำเมื่อหน้าสุดท้ายไม่สามารถเข้าถึงบันทึกที่ระบุเพื่อหลีกเลี่ยงข้อผิดพลาด
ประโยคที่เจ็ด: การผูกฟิลด์ record_info ที่นำออกจากฐานข้อมูลจะทำให้เร็กคอร์ดในฟิลด์นี้แสดงเป็นวงวน
ประโยคที่ 9: ใช้เมธอด rs.movenext เพื่อย้ายระเบียน rs ที่ตั้งไว้หนึ่งระเบียน
ประโยคที่ 10: สำหรับคำสั่งวนซ้ำ
นอกจากนี้ คุณสามารถใช้ <%=curpage%> เพื่ออ่านหน้าปัจจุบัน ใช้ <%=rs.pagecount%> เพื่ออ่านจำนวนหน้าทั้งหมด และใช้ <%= rs.recordcount%> เพื่ออ่านจำนวนทั้งหมด ของบันทึก ตัวอย่างเช่น: เพจปัจจุบัน <%=curpage%> มีทั้งหมด <%= rs.pagecount%> หน้า และมีทั้งหมด: <%=rs.recordcount%> เรคคอร์ด
ในฟังก์ชั่นแสดงหน้าแรก หน้าก่อนหน้า หน้าถัดไป และหน้าสุดท้าย มีการใช้คำสั่ง if...else... ซึ่งง่ายต่อการเข้าใจ
ต่อไปนี้เป็นเนื้อหาที่ยกมา:
<%ถ้า curpage=1 แล้ว%>
หน้าแรก
<%อื่น%>
<a href=?curpage=1>หน้าแรก</a>
<%สิ้นสุดถ้า%>
<%ถ้า curpage=1 แล้ว%>
หน้าก่อน
<%อื่น%>
<a href=?curpage=<%=curpage-1%>>หน้าก่อนหน้า</a>
<%สิ้นสุดถ้า%>
<%ถ้า rs.pagecount<curpage+1 แล้ว%>
หน้าถัดไป
<%อื่น%>
<a href=?curpage=<%=curpage+1%>>หน้าถัดไป</a>
<%สิ้นสุดถ้า%> <%ถ้าrs.pagecount<curpage+1แล้ว%>
หน้าสุดท้าย
<%อื่น%>
<a href=?curpage=<%=rs.pagecount%>>หน้าสุดท้าย</a>
<%สิ้นสุดถ้า%>
เข้าใจ:
หน้าแรก: ขึ้นอยู่กับว่าหน้าปัจจุบันเป็นหน้าแรกหรือไม่ หากหน้าปัจจุบันเป็นหน้าแรก (นั่นคือหน้าแรก) คำว่าหน้าแรกจะแสดงโดยไม่มีลิงก์ มีไว้เพื่อข้ามไปยังหน้าแรกโดยตรง
หน้าก่อนหน้า: เมื่อหน้าปัจจุบันเป็นหน้าแรก ลิงก์จะไม่ถูกต้อง ในทางกลับกัน ลิงก์ไปยังหน้าก่อนหน้า ในกรณีนี้ เราใช้: <%=curpage-1%> ซึ่งหมายถึงการลบ 1 ออกจากหมายเลขหน้าปัจจุบัน เพื่อให้ได้หน้าก่อนหน้าหนึ่งหน้า
หน้าถัดไป: คุณต้องใช้แอตทริบิวต์ rs.pagecount เพื่อเปรียบเทียบ หากจำนวนหน้าทั้งหมดน้อยกว่าหมายเลขหน้าปัจจุบันบวก 1 แสดงว่านี่คือหน้าสุดท้ายและลิงก์จะไม่ถูกต้อง จะอยู่หน้าถัดไป
หน้าสุดท้าย: ฟังก์ชั่นเดียวกับหน้าถัดไป เมื่อพิจารณาว่าเป็นหน้าสุดท้าย ลิงก์จะไม่ถูกต้อง มิฉะนั้น หน้าปัจจุบันจะถูกกำหนดให้เป็น rs.pagecount (จำนวนหน้าทั้งหมด)
บทช่วยสอนนี้สิ้นสุดที่นี่ หลังจากการอธิบาย ทุกคนควรมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับเทคโนโลยีเพจจิ้งใช่ไหม หากคุณมีคำถามใด ๆ คุณสามารถติดต่อฉันได้โดยฝากข้อความไว้ในบล็อก