搜索构建器条件
描述搜索条件的对象。
请注意 - 此属性需要 SearchBuilder 扩展程序才能用于 DataTables。
说明
SearchBuilder 条件
对象包含描述应用于 DataTable 的一组搜索词条的信息。此对象结构可用于以下操作
- 保存状态(这是存储的结构)
- 获取当前状态 (
searchBuilder.getDetails()
) - 预定义状态 -
searchBuilder.preDefined
。
使用 Typescript 定义,对象具有以下结构
interface Criteria {
criteria: Array<
| {
condition: string;
data: string;
dataOrig?: string; // preDefined with SSP only
type?: string; // preDefined with SSP only
value: string[];
}
| Criteria
>;
logic: 'AND' | 'OR';
}
属性
SearchBuilder 条件对象上有以下属性
条件
此参数是一个包含以下参数的对象数组
条件
- 定义过滤器应使用的条件。它可以采用任何值(如果与用于过滤的自定义插件一起使用),但以下为内置类型字符串
和html
列类型!=
- 不!null
- 不为空=
- 等于包含
- 包含!包含
- 不包含结束
- 结尾为!结束
- 结尾不为null
- 为空开始
- 开头为!开始
- 开头不为数值
、格式化数值
、html-num
和html-num-fmt
列类型!=
- 不!null
- 不为空<
- 小于<=
- 小于或等于=
- 等于>
- 大于>=
- 大于或等于介于
- 介于!介于
- 不介于null
- 为空日期
、moment
和luxon
列类型!=
- 不!null
- 不为空<
- 之前=
- 等于>
- 之后介于
- 介于!介于
- 不介于null
- 为空数组
列类型包含
- 包含不含
- 不含=
- 等于!=
- 不等于null
- 为空!null
- 不为空
数据
- 要用于操作的数据点(列)的标题。数据原格式
- 此值仅在启用serverSide
处理时才使用。此值是原始字段名,并在服务器端集成中用于选择正确的字段。类型
- 在使用服务器端处理时,仅当使用预定义
对象时才需要此属性。这意味着服务器可以识别正在应用搜索的字段的类型。在某些情况下,此内容是必需的,因为某些条件的行为在不同列类型中稍有不同。当使用客户端配置时,此属性不会改变 SearchBuilder 的行为。值
- 要用于过滤的值。它是一个数组,以便可以设置需要多个输入条件的(如“介于”)的条件。对于仅需要一个输入的条件,数组只需要一个值。对于需要多个输入的条件,输入将按照此数组中设置项目的顺序填充。
逻辑
logic
参数确定应使用哪种组合逻辑类型来过滤 DataTable。它必须采用字符串值 AND
或 OR
。将为 criteria
数组中的所有元素应用选定的值。如果你需要对逻辑进行分组,可以使用嵌套。
示例
此示例显示了使用单个条件应用非常简单的筛选器
{
criteria: [
{
condition: '=',
data: 'Office',
value: ['Edinburgh']
}
],
logic: 'AND'
}
此示例显示了一个嵌套的 OR 条件。书面形式为:Office = 'Edinburgh' AND (Name = 'Cedric Kelly' OR Name = 'Dai Rios')
{
criteria: [
{
condition: '=',
data: 'Office',
value: ['Edinburgh']
},
{
criteria: [
{
condition: '=',
data: 'Name',
value: ['Cedric Kelly']
},
{
condition: '=',
data: 'Name',
value: ['Dai Rios']
}
],
logic: 'OR'
}
],
logic: 'AND'
}