《Blazor》的teleerik UI免费下载30天试用版

Blazor网格过滤概述

Grid组件提供了对过滤的内置支持。

基础知识

要启用过滤,请设置网格FilterMode属性设置为以下值之一:

过滤器输入的行为和可用的过滤器操作符将取决于列数据类型。例如,一个布尔字段将只有选项“为真”和“为假”,不会有像“包含”或“大于”这样的操作符。

可以一次过滤多个列,并且所有过滤规则将与控件一起应用逻辑。

通过设置,可以防止用户过滤某个字段滤过性的= " false "在它的列上。

更多过滤选项

除了两种主要的过滤模式外,网格还提供了另外两种功能,可以增强用户在查找数据时的体验:

筛选描述符

网格筛选器状态存储在两种类型的筛选器描述符中。下面的信息很重要,如果你想以编程方式获取或更改网格过滤器

自定义筛选

有两种方法可以定制网格过滤行为,你可以一起使用它们:

  • 自己执行数据操作(例如,通过将其外包给一些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; } } }

先进的例子

在实现过滤时,以下文章和示例项目可能会有所帮助:

笔记

  • 网格使用Activator.CreateInstance < TItem > ();获取它所绑定的项的类型,以便为它们生成适当的过滤器和过滤器操作符。因此,模型应该定义一个无参数的构造函数。

另请参阅

在本文中
Baidu
map