原創(chuàng)|其它|編輯:郝浩|2010-06-07 14:11:07.000|閱讀 4258 次
概述:為了在大數據量中減少客戶端在使用表格時對服務器及網絡等資源的占用,我們需要在XtraGrid表格中實現分頁操作的功能。根據這個功能需求,結合XtraGrid的基本功能,提出了以下2種實現分頁操作的方案,并對每一個方案的利弊進行分析,比較之后希望能找到最適合你自己的方案。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
為了在大數據量中減少客戶端在使用表格時對服務器及網絡等資源的占用,我們需要在XtraGrid表格中實現分頁操作的功能。根據這個功能需求,結合XtraGrid的基本功能,提出了以下2種實現分頁操作的方案,并對每一個方案的利弊進行分析,比較之后希望能找到最適合你自己的方案。
1、利用XtraGrid本身的Server Mode模式
XtraGrid為了滿足對大數據量訪問時的性能要求,提供了一種叫做Server Mode的工作模式,在這種模式中,XtraGrid將不會一次性從數據源中讀取所有數據到內存中,而是根據需要從數據源中讀取少量數據并顯示到屏幕上。但XtraGrid在這種模式下工作時有一些限制:
1)不能編輯、增加、刪除數據;
2)不能通過顯示值來進行排列和過濾數據(但可以用編輯值來進行這些操作);
3)用戶排序時不觸發(fā)ColumnView.CustomColumnSort事件;
4)用戶分組時不觸發(fā)GridView.CustomColumnGroup事件;
5)用戶計算匯總時不觸發(fā)GridView.CustomSummaryCalculate事件;
6)在Server Mode模式下,數據表的主鍵不能由多個列組合而成。
此外,因為在XtraGrid的Server Mode模式下可以使用eXpress Persistent Objects library (XPO)方式聯接數據源,所以在使用XPO方式聯接時,也需要相關數據庫支持XPO方式,以下就列出了支持XPO方式的數據庫及版本:
Database Engine |
Version(s) |
Advantage |
Advantage Data Architect v7.1 |
Asa |
SQL Anywhere 8, SQL Anywhere 9 |
Ase |
Sybase Adaptive Server 12 |
DB2 |
DB2 8.1.9 |
Firebird |
Firebird 1.5, Firebird 2.0 |
MSAccess |
Microsoft Jet |
MSSqlServer |
Microsoft SqlServer 7.0, Microsoft SqlServer 2000, MS SQL Server 2000 Desktop Engine (MSDE 2000), Microsoft SqlServer 2005, SQL Server 2005 Express Edition |
MSSqlServerCE |
Microsoft SqlServer 2005 Mobile, Microsoft SqlServer 2005 Everywhere Edition CTP |
MySql |
MySQL Server 4.1, MySQL Server 5.0 |
Oracle |
Oracle 9i, Oracle 10g |
Pervasive |
Pervasive.SQL 9 |
Postgres |
PostgreSQL 8.1 |
SQLite |
SQLite 3 |
VistaDB |
VistaDB 2.1 |
優(yōu)點:1)實現簡單。
2)效率高。
缺點:由于 XtraGrid的Server Mode模式下的確是限制了對數據的編輯操作,表格就只能看不能寫,從而無法達到我們在表格中編輯數據的要求。
結論:因為在查找項控件(LookupEdit控件)中只會去讀取選項來進行選擇,所以可以使用該模式來提高速度。對于一般表格,只使用這種方式實現分頁查看功能,但不能用于編輯。
2、利用數據庫的關鍵字和算法
在SQLSERVER和ORACLE中,可以利用一些特殊的關鍵字和算法(SQL)來實現分頁功能。
1)在SQLSERVER中,可以利用TOP關鍵字來實現分頁功能,例如以下SQL就能實現分頁算法:
select top [pagesize] *
from table
where id not in
( select top [pagesize*(currentpage-1)] id from table [查詢條件] order by id )
and [查詢條件]
order by id
2)在ORACLE中可以利用ROWNUM關鍵字來實現分頁算法,例如以下分頁算法:
SELECT *
FROM ( SELECT row_.*, rownum rownum_
FROM (...... ) row_
WHERE rownum <= ?)
WHERE rownum_ > ?
3)在MYSQL中利用LIMIT關鍵字來實現分頁算法,例如以下分頁算法:
select *
from table [查詢條件]
order by id limit ?,?
優(yōu)點:1)能完全實現功能需求;
2)效率高,資源占用少。
缺點:實現比較復雜,需要針對不的數據庫設計不同的SQL來實現。
結論:對于我們的表格分頁編輯需求,雖然會增加一定的編程工作量,但這種實現方案是最合適的。
慧都科技作為Developer Express公司目前在中國唯一正式授權的經銷商,不僅為DXperience提供了全面的技術支持服務,同時還傾情打造 DevExpress for.net高級培訓以及DXperience Winform子控件培訓,讓您深入了解控件實現效果和常見問題的解決思路,提高開發(fā)效率。
另外,為了從根本上幫您解決數據快速錄入的問題,慧都控件網傾力打造了EVSolution QuickInput方案。它不僅支持全鍵盤操作,實現快速光標切換,而且還能進行聯想查詢、復雜數據搜索查詢等功能。另外它還提供了豐富而友好的用戶界面和用戶體驗,您可以根據需要,自動規(guī)范化格式,真正將Web軟件的優(yōu)勢發(fā)揮得淋漓盡致!
據慧都科技透露,DevExpress旗下著名控件套包:DXperience™ Universal Subscription v2010 vol 1已經正式發(fā)布,該版本增加了眾多新的WPF和Silverlight控件的新功能到整個產品線。眾多新功能搶先體驗!請關注慧都控件網!
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網