国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

DataGridView 的分頁處理

2019-11-18 16:59:18
字體:
來源:轉載
供稿:網友

只是解決DataGridview刷新慢的辦法。
如果要考慮效率,還是結合分頁的"存儲過程"比較好,只是變通了一下。

  1        #region 數據處理
  2         /// <summary>
  3         /// 得到期初數據
  4         /// </summary>
  5         PRivate void getFillDateset()
  6         {
  7             try
  8             {
  9                 //每頁顯示數
 10                 pageSize = 10;
 11                 //得到最大記錄數
 12                 maxRec = dtSource.Rows.Count;
 13                 //共有多少頁
 14                 pageCount = (maxRec / pageSize);
 15                 //取余數
 16                 if ((maxRec % pageSize) > 0)
 17                 {
 18                     pageCount++;
 19                 }
 20                 //默認第一頁
 21                 currentPage = 1;
 22                 recNo = 0;
 23                 LoadPage();
 24             }
 25             catch
 26             {
 27             }
 28         }
 29
 30
 31         /// <summary>
 32         /// 判斷是否數據已經加載
 33         /// </summary>
 34         /// <returns></returns>
 35         private bool CheckFillButton()
 36         {
 37             if (pageSize == 0) return false;
 38             else return true;
 39         }
 40
 41        /// <summary>
 42         /// 取DataTable的數據
 43        /// </summary>
 44         private void LoadPage()
 45         {
 46             int startRec;
 47             int endRec;
 48             DataTable dtTemp;
 49  
 50
 51             dtTemp = dtSource.Clone();
 52             if (currentPage == pageCount) endRec = maxRec;
 53             else endRec = pageSize * currentPage;
 54             startRec = recNo;
 55             for (int i = startRec; i < endRec; i++)
 56             {
 57                 dtTemp.ImportRow(dtSource.Rows[i]);
 58                 recNo++;
 59             }
 60             this.dataGridView1.DataSource = dtTemp;
 61         }
 62
 63        /// <summary>
 64        /// 分頁事件(取各個按鍵的Tag值)
 65        /// </summary>
 66        /// <param name="sender"></param>
 67        /// <param name="e"></param>
 68         private void changepage(object sender, EventArgs e)
 69         {
 70             if (!CheckFillButton()) return;
 71             int myint = Convert.ToInt16((string)(sender as Button).Tag);
 72             switch (myint)
 73             {
 74                 case 1:
 75                     if (currentPage == 1)
 76                     {
 77                         MessageBox.Show("The frist page now!");
 78                         return;
 79
 80                     }
 81                     currentPage = 1;
 82                     recNo = 0;
 83                     LoadPage();
 84                     break;
 85                 case 2:
 86                     currentPage++;
 87                     if (currentPage > pageCount)
 88                     {
 89                         currentPage = pageCount;
 90                         if (recNo == maxRec)
 91                         {
 92                             MessageBox.Show("The last page now!");
 93                             return;
 94                         }
 95                         else
 96                             recNo = pageSize * (currentPage + 1);
 97                     }
 98                     LoadPage();
 99                     break;
100                 case 3:
101                     if (currentPage == pageCount)
102                         recNo = pageSize * (currentPage - 2);
103                     currentPage--;
104                     if (currentPage < 1)
105                     {
106                         MessageBox.Show("The frist page now!");
107                         currentPage = 1;
108                         return;
109                     }
110                     else
111                         recNo = pageSize * (currentPage - 1);
112
113                     LoadPage();
114                     break;
115
116                 case 4:
117                     if (!CheckFillButton()) return;
118                     if (recNo == maxRec)
119                     {
120                         MessageBox.Show("The Last page now!");
121                         return;
122                     }
123                     currentPage = pageCount;
124                     recNo = pageSize * (currentPage - 1);
125                     LoadPage();
126                     break;
127             }
128
129         }
130
131 #endregion
http://www.survivalescaperooms.com/azhai/archive/2006/09/18/507624.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舟山市| 天水市| 厦门市| 台州市| 山东省| 玛沁县| 玉田县| 清水河县| 溧水县| 武鸣县| 九龙城区| 剑川县| 科尔| 楚雄市| 隆昌县| 吉林市| 长宁区| 皋兰县| 武宁县| 丹凤县| 交城县| 三亚市| 余庆县| 牟定县| 珲春市| 墨竹工卡县| 宝兴县| 治多县| 曲阳县| 正镶白旗| 渭南市| 红桥区| 五寨县| 景洪市| 镇平县| 枣强县| 烟台市| 黔西县| 沈丘县| 伊吾县| 保定市|