{hero}

搜索构建器条件

描述搜索条件的对象。
请注意 - 此属性需要 SearchBuilder 扩展程序才能用于 DataTables。

说明

SearchBuilder 条件 对象包含描述应用于 DataTable 的一组搜索词条的信息。此对象结构可用于以下操作

使用 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-numhtml-num-fmt 列类型
    • != - 不
    • !null - 不为空
    • < - 小于
    • <= - 小于或等于
    • = - 等于
    • > - 大于
    • >= - 大于或等于
    • 介于 - 介于
    • !介于 - 不介于
    • null - 为空
    • 日期momentluxon 列类型
    • != - 不
    • !null - 不为空
    • < - 之前
    • = - 等于
    • > - 之后
    • 介于 - 介于
    • !介于 - 不介于
    • null - 为空
    • 数组 列类型
    • 包含 - 包含
    • 不含 - 不含
    • = - 等于
    • != - 不等于
    • null - 为空
    • !null - 不为空
  • 数据 - 要用于操作的数据点(列)的标题。
  • 数据原格式 - 此值仅在启用 serverSide 处理时才使用。此值是原始字段名,并在服务器端集成中用于选择正确的字段。
  • 类型 - 在使用服务器端处理时,仅当使用 预定义 对象时才需要此属性。这意味着服务器可以识别正在应用搜索的字段的类型。在某些情况下,此内容是必需的,因为某些条件的行为在不同列类型中稍有不同。当使用客户端配置时,此属性不会改变 SearchBuilder 的行为。
  • - 要用于过滤的值。它是一个数组,以便可以设置需要多个输入条件的(如“介于”)的条件。对于仅需要一个输入的条件,数组只需要一个值。对于需要多个输入的条件,输入将按照此数组中设置项目的顺序填充。

逻辑

logic 参数确定应使用哪种组合逻辑类型来过滤 DataTable。它必须采用字符串值 ANDOR。将为 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'
}