搜索构建器条件
描述搜索条件的对象。
请注意 - 此属性需要 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'
}