เมื่อไม่กี่วันก่อน ฉันเขียนเกี่ยวกับ <<การนำเพจไปใช้ใน Stored Procedure>> และ <<คำอธิบายโดยละเอียดเกี่ยวกับเหตุการณ์การควบคุม GridView>> ต่อมามีคนถามฉันว่าจะนำสิ่งนี้ไปใช้งานใน GridView ได้อย่างไร อันที่จริงมันง่ายมาก ส่วนใหญ่จะมีปัญหาในการบันทึกหมายเลขหน้า PageIndex ของหน้าปัจจุบัน แต่ทุกอย่างจะแก้ไขได้ง่ายกว่า เพราะในกระบวนการแบ่งหน้า แน่นอนว่า PageSize เราสามารถใช้แอตทริบิวต์เพื่อแสดงมันได้หลายวิธี บันทึก PageIndex และข้อมูลจะมีขนาดไม่ใหญ่มาก โดยพื้นฐานแล้ว จะไม่มีทรัพยากรมากนัก ดังคำกล่าวเก่าๆ ไม่ว่าจะพูดไปกี่คำก็ตาม ก็ไม่มีตัวอย่างที่เข้าใจง่าย
ในที่นี้ เราจะใช้ฟิลด์ที่ซ่อนอยู่ เพื่อบันทึก PageIndex ซึ่งเป็นหมายเลขหน้าปัจจุบัน เมื่อคลิกหน้าก่อนหน้า ค่าของมันจะลดลง อันดับแรกจะเรียกว่า 0 สิ่งหนึ่งที่ควรทราบคือหมายเลขหน้าของหน้าแรกที่นี่คือ 0 แทน 1 มาดูโค้ดกันดีกว่า แล้วเราจะมาวิเคราะห์กัน!
1
2 <คอลัมน์>
3
4 5 DataTextField = "หัวข้อ" HeaderText = "ชื่อข่าว" ItemStyle-Width = "70%"/>
6
7 8 ShowEditButton="จริง"/>
9 คอลัมน์>
10
11
12
13
หน้าแรก 14
หน้าก่อนหน้า 15
หน้าถัดไป 16
หน้าสุดท้าย 17
รหัสในไฟล์ CS:
1 โมฆะที่ได้รับการป้องกัน PagerButton_Click (ผู้ส่งวัตถุ EventArgs e)
2 {
3 int pageIndx = Convert.ToInt32(CurrentPage.Value);
4 int รวม = NewsManager.GetNews(0, pageSize).TotalRecords;
5 int หน้า = (ผลรวม % ขนาดหน้า) == 0 ? (ผลรวม / ขนาดหน้า) : (ผลรวม / ขนาดหน้า + 1);
6 string arg = ((LinkButton)ผู้ส่ง).CommandArgument.ToString().ToLower();
7 สวิตช์ (หาเรื่อง)
8 {
9 กรณี "ก่อนหน้า":
10 ถ้า (pageIndx > 0)
11 {
12 หน้าIndx -= 1;
13}
14 พัก;
15 กรณี "ถัดไป":
16 ถ้า (pageIndx < หน้า - 1)
17 {
18 หน้าIndx += 1;
19}
20 พัก;
21 กรณี "สุดท้าย":
22 pageIndx = หน้า - 1;
23 พัก;
24ค่าเริ่มต้น:
25 หน้าIndx = 0;
26 พัก;
27}
28 CurrentPage.Value = pageIndx.ToString();
29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx, pageSize).Entities;
30 NewsGrid.DataBind();
31}
มันไม่ง่ายเลยใช่ไหม คุณจะเข้าใจหลังจากอ่านโค้ดแล้ว ฉันจะไม่ลงรายละเอียดเกี่ยวกับการใช้ปุ่มเพื่อส่งผ่านพารามิเตอร์ที่นี่ นอกจากนี้ยังมีแอตทริบิวต์ Entities ใน < > สามารถพบได้ที่นี่ในบทความ
http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html