DataGridview の新しい遅いメソッドを解決するだけです。
効率を考慮すると、リージョンを結合した「保存プロセス」の方が優れています
。
2 /// <概要>
3 /// 期初データを取得
4 /// </まとめ>
5 プライベート void getFillDateset()
6 {
7 試してみる
8 {
9 //每页显表示数
10 ページサイズ = 10;
11 //最大记录数を獲得
12 maxRec = dtSource.Rows.Count;
13 //共有量页
14 ページ数 = (maxRec / ページサイズ);
15 //残り数
16 if ((maxRec % pageSize) > 0)
17 {
18 ページ数++;
19 }
20 //默认第一页
21 現在のページ = 1;
22 レクNo = 0;
23 ロードページ();
24 }
25 キャッチ
26 {
27 }
28 }
29
30
31 /// <概要>
32 /// 判断かどうかデータすでに追加
33 /// </概要>
34 /// <リターン></リターン>
35 プライベートブール CheckFillButton()
36 {
37 if (pageSize == 0) は false を返します。
38 それ以外の場合は true を返します。
39 }
40
41 /// <概要>
42 ///DataTableのデータを取得
43 /// </概要>
44 プライベート void LoadPage()
45 {
46 int startRec;
47 int endRec;
48 データテーブル dtTemp;
49
50
51 dtTemp = dtSource.Clone();
52 if (currentPage == pageCount) endRec = maxRec;
53 else endRec = pageSize * currentPage;
54 開始Rec = 記録No;
55 for (int i = startRec; i < endRec; i++)
56 {
57 dtTemp.ImportRow(dtSource.Rows[i]);
58 レクNo++;
59 }
60 this.dataGridView1.DataSource = dtTemp;
61 }
62
63 /// <概要>
64 /// 分页イベント(各個按键のタグ值)
65 /// </要約>
66 /// <param name="送信者"></param>
67 /// <param name="e"></param>
68 private void changepage(オブジェクト送信者、EventArgs e)
69 {
70 if (!CheckFillButton()) が戻る;
71 int myint = Convert.ToInt16((文字列)(ボタンとして送信者).Tag);
72 スイッチ (myint)
73 {
74 ケース 1:
75 if (currentPage == 1)
76 {
77 MessageBox.Show("最初のページです!");
78 戻ります。
79
80 }
81 現在のページ = 1;
82 記録番号 = 0;
83 ロードページ();
84 休憩。
85 ケース 2:
86 現在のページ++;
87 if (現在のページ > ページ数)
88 {
89 現在のページ = ページ数;
90 if (recNo == maxRec)
91 {
92 MessageBox.Show("最後のページです!");
93 戻ります。
94 }
95 その他
96 recNo = ページサイズ * (現在のページ + 1);
97 }
98 ロードページ();
99ブレイク。
100 ケース 3:
101 if (currentPage == ページ数)
102 recNo = ページサイズ * (現在のページ - 2);
103 現在のページ--;
104 if (currentPage < 1)
105 {
106 MessageBox.Show("今最初のページです!");
107 現在のページ = 1;
108 戻ります。
109 }
110 その他
111 recNo = ページサイズ * (現在のページ - 1);
112
113 ロードページ();
114 休憩。
115
116 ケース 4:
117 if (!CheckFillButton()) が戻る;
118 if (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