Blazor网格过滤概述
Grid组件提供了对过滤的内置支持。
基础知识
要启用过滤,请设置网格FilterMode
属性设置为以下值之一:
Telerik.Blazor.GridFilterMode.FilterRow
-在列标题下方呈现一行筛选器选项Telerik.Blazor.GridFilterMode.FilterMenu
-列标头呈现一个按钮,显示一个带有过滤选项的弹出窗口
过滤器输入的行为和可用的过滤器操作符将取决于列数据类型。例如,一个布尔字段将只有选项“为真”和“为假”,不会有像“包含”或“大于”这样的操作符。
可以一次过滤多个列,并且所有过滤规则将与控件一起应用和
逻辑。
通过设置,可以防止用户过滤某个字段滤过性的= " false "
在它的列上。
更多过滤选项
除了两种主要的过滤模式外,网格还提供了另外两种功能,可以增强用户在查找数据时的体验:
筛选描述符
网格筛选器状态存储在两种类型的筛选器描述符中。下面的信息很重要,如果你想以编程方式获取或更改网格过滤器。
- 过滤器的行使用FilterDescriptors。每一个
FilterDescriptor
包含一个一个字段的过滤准则(成员
). - 的SearchBox和过滤器菜单使用CompositeFilterDescriptors。每一个
CompositeFilterDescriptor
包含一个集合的FilterDescriptor
年代它可以针对相同或不同的领域。集合中的所有描述符都使用和或者一个或LogicalOperator
。
自定义筛选
有两种方法可以定制网格过滤行为,你可以一起使用它们:
自己执行数据操作(例如,通过将其外包给一些API后端或其他服务)—要做到这一点,请使用
OnRead
事件。这将允许您仅获取网格的当前数据页,而不是提取整个数据集并将其存储在视图模型的内存中。自定义过滤器的外观和行为—为此,请使用过滤模板网格提供。
自定义过滤器编辑器
您可以为某些数据类型声明式地自定义筛选器编辑器。可以更改编辑器组件或编辑器格式。
GridColumn参数 | 类型 | 适用于 | 描述 |
---|---|---|---|
FilterEditorType |
GridFilterEditorType 枚举 |
DateTime 列 |
组件,网格将呈现该组件以进行过滤(DatePicker或DateTimePicker)。 |
FilterEditorFormat |
字符串 |
DateTime 和数字列 |
的格式 过滤组件的。不要使用占位符(例如set“D” ,而不是“{0:D}” ). |
@*使用FilterEditorType和FilterEditorFormat参数*@ @code { public List GridData { get; set; } protected override void OnInitialized() { GridData = new List(); var rand = new Random(); for (int i = 0; i < 100; i++) { GridData.Add(new Employee() { EmployeeId = i, Name = "Employee " + i.ToString(), AgeInYears = rand.Next(10, 80), HireDate = DateTime.Now.Date.AddDays(rand.Next(-20, 20)), IsOnLeave = i % 3 == 0 }); } } public class Employee { public int? EmployeeId { get; set; } public string Name { get; set; } public int? AgeInYears { get; set; } public DateTime HireDate { get; set; } public bool IsOnLeave { get; set; } } }
先进的例子
在实现过滤时,以下文章和示例项目可能会有所帮助:
捕获过滤事件-网格状态让你知道它何时发生变化,这样你就可以捕捉到变化的不同方面
服务器过滤-本文解释了如何实现手动数据源操作,以便您可以将工作卸载到服务器。它概述了如何为此设置网格,并提供了一些示例—其中有几个使用本地数据,并将存储库与使用REST API端点的示例链接起来。
在过滤器菜单中只留下一个选项-这是一个CSS方法,或者你可以实现一个自定义过滤器模板。
笔记
- 网格使用
Activator.CreateInstance < TItem > ();
获取它所绑定的项的类型,以便为它们生成适当的过滤器和过滤器操作符。因此,模型应该定义一个无参数的构造函数。