DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress WinForms v25.2正式版下载
DevExpress技术交流群12:1028386091 欢迎一起进群讨论
什么是服务器模式?
在常规的数据绑定模式下,数据感知控件会一次性加载整个数据集,对于数据量较大的情况,这会显著降低应用程序的启动速度,并占用大量内存。整个应用程序的性能取决于用户的配置,而数据处理操作(排序、分组或筛选)可能会造成瓶颈。

解决此问题的原始方法是采用分页技术,即将数据集分割成多个独立的部分,并显示“上一页”和“下一页”按钮,其间还会有页码,以便在不同记录之间进行切换。DevExpress 数据网格提供了一种更好的解决方案,允许您在不需要任何导航按钮的情况下按需在数据部分之间导航,并在服务器端执行所有数据整形操作-服务器模式。

服务器模式包含两种独立的模式:
- 常规(同步)服务器模式会锁定图形用户界面,并且在检索数据时不会响应用户操作。
- 即时反馈模式(异步服务器模式)会在后台线程中加载数据,从而确保图形用户界面在这一过程中保持响应状态,此模式在 GridLookUpEdit 控件中不被支持。
重要提示:由于在两种模式下,数据整形操作(过滤、分组、排序等)都是在服务器端进行的,所以请确保服务器支持这些操作。
服务器模式数据源
若要为您的数据感知控件启用特定的服务器模式,需要使用合适的数据源。您可以使用作为 eXpress 持久对象(XPO)库一部分提供的数据源,或者使用专门针对“LINQ to SQL 类”进行优化的数据源。
以下表格列出了可用的服务器模式数据源,除了XPServerCollectionSource(其“允许编辑”选项已启用)之外的所有数据源均为只读。

注意:切勿使用 BindingSource 组件来绑定数据,否则所有数据都会被加载到内存中,而服务器模式也将失去作用。
无限滚动 - 虚拟(基于事件)服务器模式
除了两种“传统”的按需数据网格模式(服务器模式和即时反馈模式)之外,您还可以使用基于事件的虚拟服务器模式源组件来分小块手动加载大量数据,这种技术被称为无限滚动。无限滚动成功地取代了其他供应商的数据感知控件中使用的数据分页功能。

功能限制与细节
在服务器模式下,网格控件(GridControl、GridLookUpEdit 和 SearchLookUpEdit)无法同时访问其绑定数据的全部内容。这在一定程度上限制了服务器模式下网格所具备的常规绑定模式下的某些功能,请查看以下内容来了解在服务器模式下不支持或不建议使用的功能。
未支持的功能
- 使用 BindingSource 进行数据绑定。
- 主从模式。
- 当数据进行分组时,在网格控件中添加/删除记录。
- 根据显示值而非编辑值对数据进行排序、分组和筛选(请参阅下面的注释)。
- 在Find Panel面板中针对数据类型而非字符串也非数字的列进行数据搜索。
- 通过ColumnView.CustomRowFilter事件对行进行筛选。
- 在即时反馈模式下向筛选下拉列表中添加自定义项目。
- 通过ColumnView.CustomColumnSort事件实现自定义排序。
- 通过 GridView.CustomColumnGroup 事件实现自定义分组。
- 在所有支持服务器的数据源中都实现了合并分组功能,但 XPServerCollectionSource和 XPInstantFeedbackSource除外。
- 在与WcfInstantFeedbackSource 和 WcfServerModeSource 进行绑定时,设置组间隔(GridColumn.GroupInterval)。
- 使用GridView.CustomSummaryCalculate 事件来计算自定义汇总的功能是有限制的:该事件仅在“CustomSummaryProcess”参数返回“Finalize”时才会触发一次。
- 对于由ColumnView.CustomUnboundColumnData事件提供的值所构成的未绑定列,可进行排序、分组、筛选和汇总计算。对于使用表达式填充的未绑定列(请参阅GridColumn.UnboundExpression),这些功能仍然有效。
- 在对数据进行分组或排序时,保持选定行的位置不变。
- 在对数据进行排序、分组或筛选(包括Selection Binding)的情况下,仍能保持行的选择状态。
- 当使用 WcfInstantFeedbackSource 和 WcfServerModeSource 时,会使用复合键。
- 在使用即时反馈集合时,会自动绑定到嵌套属性。若要从嵌套表/对象中汇总数据,请使用 XPInstantFeedbackView或带有基于 LINQ 的即时反馈集合的投影(例如,LinqInstantFeedbackSource和 EntityInstantFeedbackSource)。
注意:查找列可以与一个数据字段绑定,但其显示内容可来自另一个数据字段。在服务器数据绑定模式下,将FieldNameSortGroup属性设置为具有文本值的数据字段,以便根据显示文本对查找列的值进行排序。
一般详情
- 当您使用Find Panel来搜索数据时,网格会将搜索字符串转换为小写形式。因此,如果网格控件与区分大小写的数据源绑定,那么数据搜索结果中就不会包含那些包含大写文字的目标条目。
- 在即时反馈模式下,可显示的数据组的最大数量被限制在 10000 个以内。
- 服务器模式的数据源在对底层数据库进行更改后可能会被重新加载。例如,常见的情况包括但不限于:由外部进程引起的数据库更改、同一进程中的代码导致的更改、现场编辑等。
- 应避免执行那些需要对所有数据网格行进行操作的操作,因为对每一行进行处理都会向 SQL 服务器发送单独的查询。因此执行此类操作可能会导致严重的性能问题和用户界面卡顿,对数据网格性能影响最严重的操作是展开所有组行(GridOptionsBehavior.AutoExpandAllGroups、GridView.ExpandAllGroups)以及选择所有数据记录(GridView.SelectAll)。
更多DevExpress线上公开课、中文教程资讯请上中文网获取
关于慧都科技
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5674.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,
联系电话:023-68661681



返回