DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForm能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
獲取DevExpress v22.2正式版下載
什么是服務器模式?
在常規數據綁定模式中,數據感知控件一次加載整個數據集,在數據量大的情況下,這會顯著降低應用程序啟動速度,并消耗大量內存。應用程序的整體性能取決于客戶的設備,數據整形操作(排序、分組或過濾)可能會導致瓶頸。
處理此問題的基本方法是實現分頁,即將數據集分割為離散的部分,并顯示Previous、頁碼和Next按鈕來在記錄之間切換。DevExpress Data Grid提供了一個更好的解決方案,允許開發人員根據需要在數據部分之間導航,無需任何導航按鈕,并在服務器端執行所有數據整形操作 - Server Modes(服務器模式)。
“server modes”包括兩種獨立的模式:
-
常規(同步)服務器模式鎖定GUI,并且在檢索數據時不響應最終用戶的操作;
-
Instant Feedback(即時反饋模式)(異步服務器模式)在后臺線程中加載數據,以便GUI在進程中保持響應,GridLookUpEdit控件不支持此模式。
重要提示:由于在這兩種模式下,數據整形操作(篩選、分組、排序等)都是在服務器端執行的,所以要確保服務器支持這些操作。
功能限制和細節
在服務器模式中,網格控件 (, 和 )不能同時訪問整個綁定數據。這對在常規綁定模式下仍然可用的網格功能施加了某些限制。有關服務器模式下不支持/不推薦的特性的信息,請參見下面。
不受支持的功能
-
使用BindingSource進行數據綁定。
-
Master-detail模式。
-
當數據分組時,從Grid控件中添加/刪除記錄。
-
按顯示值排序、分組和過濾數據,替代按編輯值(參見下面的說明)。
-
在Find Panel 中對數據類型既不是字符串也不是數字的列進行數據搜索。
-
使用ColumnView. CustomRowFilter事件篩選行。
-
在Instant Feedback(即時反饋)模式中將自定義項添加到過濾器下拉列表中。
-
使用ColumnView.CustomColumnSort事件自定義排序。
-
使用GridView.CustomColumnGroup事件自定義分組。
-
所有服務器感知數據源中的合并分組,除了XPServerCollectionSource和XPInstantFeedbackSource。
-
綁定WcfInstantFeedbackSource和WcfServerModeSource時的組間隔(GridColumn.GroupInterval)。
-
使用GridView. CustomSummaryCalculate事件自定義摘要是有限制的:當CustomSummaryProcess參數返回" Finalize "時,該事件只觸發一次。
-
對ColumnView. CustomUnboundColumnData事件提供值的未綁定列進行排序、分組、過濾和匯總計算,使用表達式填充的未綁定列仍然支持這些特性(參見)。
-
在對數據進行分組或排序時,保留聚焦行的位置。
-
在對數據進行排序、分組或篩選時保留行選擇。
-
當開發人員使用WcfInstantFeedbackSource和WcfServerModeSource時復合鍵。
-
使用即時反饋集合時綁定到嵌套屬性,要從嵌套表/對象中聚合數據,可以使用XPInstantFeedbackView或projections_ *與基于linq的即時反饋集合(例如,LinqInstantFeedbackSource和EntityInstantFeedbackSource)。
注意:查找列可以綁定到一個數據字段,但顯示來自另一個數據字段的文本。將FieldNameSortGroup屬性設置為帶有文本值的數據字段,以便在服務器數據綁定模式中根據顯示文本對查找列值進行排序。
一般的細節
-
當您通過查找面板進行搜索時,網格總是將搜索字符串轉換為小寫。因此,當Grid控件綁定到區分大小寫的數據源時,數據搜索結果不包含包含大寫文本的目標條目。您可以通過使用不區分大小寫的數據源來克服這個問題。
-
在Instant Feedback(即使反饋)模式下,最大可見數據組數限制為10000個。
-
服務器模式數據源可以在更改基礎數據庫后重新加載。例如,已知的場景包括但不限于:由外部進程引起的數據庫更改、由同一進程中的代碼引起的更改、就地編輯等。
-
應該避免涉及操作所有Data Grid行的操作,因為處理每一行都會向SQL服務器發送一個單獨的查詢。因此執行這樣的操作可能會導致嚴重的性能問題和UI凍結,對數據網格性能影響最大的操作是展開所有組行(GridOptionsBehavior. AutoExpandAllGroups, GridView.ExpandAllGroups) 和選擇所有數據記錄(GridView.SelectAll)。
服務器模式數據源
要為數據感知控件啟用特定的服務器模式,需要使用適當的數據源。開發人員可以使用eXpress持久對象(XPO)庫提供的數據源,或者使用專門為‘LINQ to SQL Classes’定制的數據源,因此為控件選擇以下數據源中的一種。
注意,開發人員應該綁定到沒有BindingSource組件的數據。否則所有數據都將加載到內存中,服務器模式將變得無用。
無限滾動 - 虛擬(基于事件)服務器模式
除了兩種“經典的”數據按需網格模式(服務器模式和即時反饋)外,您還可以使用基于事件的VirtualServerModeSource組件來小部分手動加載大數據量。這種技術稱為無限滾動,它成功地替代了其他供應商的數據感知控件中使用的數據分頁。
DevExpress技術交流群7:674691612 歡迎一起進群討論
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網