Telerik UI for WPF?下载30天免费试用

显示所有不同的值

默认情况下,列显示的不同值将仅限于该列中可见的前1000个不同值。如果其他列具有隐藏某些数据行的活动筛选器,那么在提取不同值时将不考虑这些行。控件可以控制此行为DistinctValuesLoading事件的RadGridView赋值给ItemsSource事件参数的属性。每当要显示弹出式过滤控件时,将触发此事件。此事件应仅用于控制用户将看到的不同值的数量。你不能用另一个. net Type的值替换原来的不同值,因为这会破坏数据引擎。分配给事件参数ItemsSource属性的不同值应始终与列中显示的数据具有相同的类型。如果可能的话,你应该总是使用RadGridView的公共方法GetDistinctValues,它有两个重载。使用第一个过载你可以知道RadGridView要通过忽略其他列的当前活动筛选器来为某个列提供所有不同的值(示例1).这是通过为方法的filter参数指定false来实现的。例如,如果我们有国家和球员,并且我们已经通过CountryX过滤,当我们请求所有不同的球员时,如果'filter'为真,我们将只从CountryX获取球员。如果'filter'为false,我们将得到所有不同的玩家。

示例1:GetDistinctValues (GridViewColumn、布尔)方法返回给定列的前1000个不同值。的Boolean('filter') parameter specifies whether distinct values should be filtered according to other columns' active filters.

private void OnRadGridViewDistinctValuesLoading(对象发送者,teleriks . windows . controls . gridview . gridviewdistinctvaluesloadingeventargs e) {e.ItemsSource = ((teleriks . windows . controls . radgridview)sender). getdistinctvalues (e。列,假);}
Private Sub OnRadGridViewDistinctValuesLoading(发送者作为系统。对象,e As Telerik.Windows.Controls.GridView.GridViewDistinctValuesLoadingEventArgs) . itemssource = DirectCast(sender, Telerik.Windows.Controls.RadGridView). getdistinctvalues (e。列,False)结束子

控件的第二次重载可控制列显示的不同值的最大数量GetDistinctValues方法,该方法有一个可空整数类型的附加参数maximumValueCount.您提供的值将用于限制返回的不同值的数量(示例2).如果你提供一个空值,你将得到完全不同的值。请记住,显示完全不同的值可能会导致性能问题。

示例2:GetDistinctValues(GridViewColumn, Boolean, Nullable(Int32))方法将强制列仅显示前15个可见的不同值。要返回的不同值的最大数量。属性指定为空Nullable (Int32)参数,则返回所有不同的值。

private void OnRadGridViewDistinctValuesLoading2(对象发送者,teleriks . windows . controls . gridview . gridviewdistinctvaluesloadingeventargs e) {e.ItemsSource = ((teleriks . windows . controls . radgridview)sender). getdistinctvalues (e。列,真,15);}
Private Sub OnRadGridViewDistinctValuesLoading2(发件人作为系统。对象,e As Telerik.Windows.Controls.GridView.GridViewDistinctValuesLoadingEventArgs) . itemssource = DirectCast(sender, Telerik.Windows.Controls.RadGridView). getdistinctvalues (e。列,True, 15)结束子

事件参数提供的列实例可以帮助仅对特定列进行调整。

显示不区分大小写的不同值

缺省情况下,不同的值区分大小写。为了不区分大小写地填充它们,然后对它们进行筛选,您可以实现以下附加代码(示例3):

示例3:显示不区分大小写的不同值。

private void OnRadGridViewFiltered(对象发送者,telererik . windows . controls . gridview . gridviewfilteredeventargs e) {foreach (var项目在e.c olcolumnfilterdescriptor . distinctfilter . filterdescriptors){项目。IsCaseSensitive = false;}} private void OnRadGridViewDistinctValuesLoading3(对象发送者,teleriks . windows . controls . gridview . gridviewdistinctvaluesloadingeventargs e) {e.e itemssource = ((teleriks . windows . controls . radgridview)sender). getdistinctvalues (e。列,false) .OfType <字符串>()。选择(x => x.ToLower()).Distinct(); }
Private Sub OnRadGridViewFiltered(sender As Object, e As Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs)对于e.ColumnFilterDescriptor.DistinctFilter.FilterDescriptors项目中的每个项目。IsCaseSensitive = False Next End Sub Private Sub OnRadGridViewDistinctValuesLoading3(sender As Object, e As teleriks . windows . controls . gridview . gridviewdistinctvaluesloadingeventargs). itemssource = DirectCast(sender, teleriks . windows . controls . radgridview). getdistinctvalues (e。列,False)。减低(字符串)()。选择.Distinct()结束Sub
在本文中
Baidu
map