คำสั่ง DataGridview และคำสั่งใหม่
如果要考虑效率,还是结合分页的"存储过程"比较好,只是变通了一下。
1 #region 数据处理
2 /// <สรุป>
3 /// 得到期初数据
4 /// สรุป>
5 โมฆะส่วนตัว getFillDateset()
6 {
7 ลอง
8 {
9 //每页显示数
10 ขนาดหน้า = 10;
11 //得到最大记录数
12 maxRec = dtSource.Rows.Count;
13 //共มี多少页
14 จำนวนหน้า = (maxRec / ขนาดหน้า);
15 //取余数
16 ถ้า ((maxRec % ขนาดหน้า) > 0)
17 {
18 หน้านับ++;
19 }
20 //默认第一页
21 หน้าปัจจุบัน = 1;
22 รอบ = 0;
23 หน้าโหลด();
24 }
25 จับ
26 {
27 }
28 }
29
30
31 /// <สรุป>
32 /// 判断是否数据已经加载
33 /// สรุป>
34 /// <ส่งคืน>ส่งคืน>
35 บูลส่วนตัว CheckFillButton()
36 {
37 ถ้า (pageSize == 0) กลับเท็จ;
38 อื่นกลับเป็นจริง;
39 }
40
41 /// <สรุป>
42 /// 取DataTable อยู่ในตำแหน่ง
43 /// สรุป>
44 โมฆะส่วนตัว LoadPage()
45 {
46 int startRec;
47 int endRec;
48 ตารางข้อมูล dtTemp;
49
50
51 dtTemp = dtSource.Clone();
52 ถ้า (หน้าปัจจุบัน == จำนวนหน้า) endRec = maxRec;
53 อย่างอื่น endRec = pageSize * currentPage;
54 startRec = recNo;
55 สำหรับ (int i = startRec; i < endRec; i++)
56 {
57 dtTemp.ImportRow(dtSource.แถว[i]);
58 recNo++;
59 }
60 this.dataGridView1.DataSource = dtTemp;
61 }
62
63 /// <สรุป>
64 /// 分页事件(取各个按键的Tag值)
65 /// สรุป>
66 ///
67 ///
68 หน้าการเปลี่ยนแปลงโมฆะส่วนตัว (ผู้ส่งวัตถุ EventArgs e)
69 {
70 ถ้า (!CheckFillButton()) กลับ;
71 int myint = Convert.ToInt16((string)(ผู้ส่งเป็นปุ่ม).Tag);
72 สวิตช์ (มายอินท์)
73 {
74 กรณีที่ 1:
75 ถ้า (หน้าปัจจุบัน == 1)
76 {
77 MessageBox.Show("หน้าแรกตอนนี้!");
78 กลับ;
79
80 }
81 หน้าปัจจุบัน = 1;
82 recNo = 0;
83 หน้าโหลด();
84 แตก;
85 กรณีที่ 2:
86 หน้าปัจจุบัน++;
87 ถ้า (หน้าปัจจุบัน > จำนวนหน้า)
88 {
89 หน้าปัจจุบัน = จำนวนหน้า;
90 ถ้า (recNo == maxRec)
91 {
92 MessageBox.Show("หน้าสุดท้ายแล้ว!");
93 กลับ;
94 }
95 อื่น ๆ
96 recNo = ขนาดหน้า * (หน้าปัจจุบัน + 1);
97 }
98 หน้าโหลด();
99 แตก;
100 กรณีที่ 3:
101 ถ้า (หน้าปัจจุบัน == จำนวนหน้า)
102 recNo = ขนาดหน้า * (หน้าปัจจุบัน - 2);
103 หน้าปัจจุบัน--;
104 ถ้า (หน้าปัจจุบัน < 1)
105 {
106 MessageBox.Show("หน้าแรกตอนนี้!");
107 หน้าปัจจุบัน = 1;
108 กลับ;
109 }
110 อื่นๆ
111 recNo = ขนาดหน้า * (หน้าปัจจุบัน - 1);
112
113 หน้าโหลด();
114 แตก;
115
116 กรณีที่ 4:
117 ถ้า (!CheckFillButton()) กลับ;
118 ถ้า (recNo == maxRec)
119 {
120 MessageBox.Show("หน้าสุดท้ายแล้ว!");
121 กลับ;
122 }
123 หน้าปัจจุบัน = จำนวนหน้า;
124 recNo = ขนาดหน้า * (หน้าปัจจุบัน - 1);
125 หน้าโหลด();
126 แตก;
127 }
128
129 }
130
131#เขตแดน
http://www.cnblogs.com/azhai/archive/2006/09/18/507624.html