[工作札記]01: CS系統中分頁控件的制作


需求:在一個已有的CS項目(ERP中),給所有的列表加上分頁功能。

分頁的幾個概念:

  1. 總記錄數  totalCount (只有知道了總記錄數,才知道有多少頁)
  2. 每頁記錄數  pageSize (根據總記錄數和每頁記錄大小,可以計算出有多少頁)
  3. 當前頁 currentPage (當前頁不能小於1,也不能大於總頁數)
  4. 總頁數 totalPage 

SQL Server的不同分頁方法:

  • Top + 子查詢,適用於SqlServer2000 及以前的版本中
  • row_number() over (order by ... asc/desc),從Sqlserver2005之后開始有
  • offset 20 rows fetch next 10 rows only, sqlserver2012及以后版本的數據庫使用

不同數據庫不同的分頁方法,摘自《給培訓學校講解ORM框架的課件》一文:

 

因為系統是遺留的老系統,有上千個查詢,所以要兼顧工作量和實施難易程度的問題,最終采用Sqlserver2012及以后使用的最新的分頁功能。

原始查詢:

改造后的查詢:

解釋:因為分頁需要計算總記錄數,所以引入strSqlCount變量,計算總數。

好了,我們的分頁控件登場。

分頁控件的代碼(大家忍着點,使用的是vb.net的代碼):

最終的效果圖如下:

使用服務器端分頁控件,頁面加載速度有了大幅度的提高

 

 

.net工作札記系列:

[工作札記]01: CS系統中分頁控件的制作

[工作札記]02: .Net Winform控件TreeView最簡遞歸綁定方法

[工作札記]03: 微軟Winform窗體中設計上的Bug,會導致程序編譯失敗,影響范圍:到最新的.net4.7.2都有


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM