logo Devexpress WPF控件文档中心

服务器模式和即时反馈模式


服务器模式

服务器模式是为了让您能够处理大型数据集而设计的。绑定的数据不会被全部加载到内存中。相反,GridControl根据需求加载小部分数据。当GridControl启动时,它从数据存储中加载并显示第一部分数据。然后,当用户滚动网格,并到达加载子集的最后一条记录时,网格请求数据存储返回后续的数据部分。GridControl在服务器端执行所有的数据感知操作。

在常规的数据绑定模式下,在网格控件内显示之前,必须将数据从数据存储中完整地获取到内存中。记录的数量是一个瓶颈,因为记录越多,加载数据所需的时间就越多。此外,网格的性能也取决于加载记录的总数,特别是当数据被排序、分组、过滤或使用摘要功能时。在这种情况下,网格需要处理整个记录集来实现特定的数据感知操作。

如果GridControl绑定到支持DevExpress.Data.IListServer接口的数据源上,它将自动在服务器模式下运行。目前,您可以使用LinqServerModeSourceXPServerCollectionSourceEntityServerModeSourceWcfServerModeSource组件作为服务器模式下的数据源。这些组件支持IListSource接口,并通过它们的List属性返回实现DevExpress.Data.IListServer接口的列表。
如果一个数据源没有实现DevExpress.Data.IListServer接口,服务器模式就不可用。
服务器模式不能用于主-从模式。
即时反馈模式

即时反馈模式与服务器模式在概念上非常相似,数据只检索填充视图所需的部分,数据感知操作在服务器上执行。然而,即时反馈模式是一种异步的服务器模式。区别在于当数据被检索和填充时,网格如何表现。


当用户在服务器模式下滚动浏览记录时,网格首先等待部分数据被获取,然后再填充行。根据数据源的性能、被检索的数据量和网络连接,用户可能会注意到相当大的控制冻结。即时反馈模式解决了这一问题,在检索数据的同时继续响应用户的操作。用户可以继续滚动浏览记录,甚至对控件的数据进行重新排序、重新分组和重新过滤。如果需要,该控件将取消之前的请求,并向数据源发起新的请求。

要激活这个功能,请使用我们专门设计的数据源--LinqInstantFeedbackDataSourceXPInstantFeedbackSourceEntityInstantFeedbackDataSourceWcfInstantFeedbackDataSource

为了避免线程安全问题,如果它们的 AreSourceThreadSafe 属性没有设置为 false,所有即时反馈数据提供者都会检索对象的包装器,但不会检索实际对象。在 XAML 中绑定时,使用下面代码片段中所示的数据对象。


<Setter Property="ToolTip" Value="{Binding Path=Data.Parameter.Description}" />
你也可以使用一个特殊的转换器--dxg:RowPropertyValueConverter,从包装器中获取一个值。请看下面的例子。


RowStyle


<dxg:RowPropertyValueConverter x:Key="rowPropertyConverter" />
...
<DataTrigger Binding="{Binding Path=DataContext, Converter={StaticResource rowPropertyConverter}, ConverterParameter=IsSeen}" Value="True">
    <Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
CellStyle/CellTemplate



<dxg:RowPropertyValueConverter x:Key="rowPropertyConverter" /> 
...
<TextBlock Text="{Binding Converter={StaticResource rowPropertyConverter}, ConverterParameter=yourPropertyName}" />
为了提供视觉反馈,即时反馈绑定模式还包括显示指示网格内操作状态的动画的选项。


Property Description
DataViewBase.RowAnimationKind Specifies which animation is played while data is being asynchronously retrieved by the data source.
DataViewBase.WaitIndicatorType Specifies how asynchronous data loading operations are indicated.
DataViewBase.WaitIndicatorStyle Specifies the template that defines the wait indicator's presentation.


在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP