{hero}

SearchBuilder.Criteria

描述搜尋條件的物件。
請注意 - 此屬性需要 DataTables 的 SearchBuilder 擴充功能。

描述

SearchBuilder 的 Criteria 物件包含描述套用至 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 Criteria 物件具有以下屬性:

criteria

此參數是一個物件陣列,其中包含以下參數:

  • condition - 定義篩選器應使用的條件。它可以採用任何值(如果與自訂篩選外掛程式一起使用),但以下是內建類型:
    • stringhtml 欄位類型
    • != - 不等於
    • !null - 非空
    • = - 等於
    • contains - 包含
    • !contains - 不包含
    • ends - 以...結尾
    • !ends - 不以...結尾
    • null - 空
    • starts - 以...開頭
    • !starts - 不以...開頭
    • numnum-fmthtml-numhtml-num-fmt 欄位類型
    • != - 不等於
    • !null - 非空
    • < - 小於
    • <= - 小於等於
    • = - 等於
    • > - 大於
    • >= - 大於等於
    • between - 介於
    • !between - 不介於
    • null - 空
    • datemomentluxon 欄位類型
    • != - 不等於
    • !null - 非空
    • < - 之前
    • = - 等於
    • > - 之後
    • between - 介於
    • !between - 不介於
    • null - 空
    • array 欄位類型
    • contains - 包含
    • without - 不包含
    • = - 等於
    • != - 不等於
    • null - 空
    • !null - 非空
  • data - 用於操作的資料點(欄位)標題。
  • dataOrig - 僅當啟用 serverSide 處理時,才會使用此值。此值是原始欄位名稱,並在伺服器端整合中用於選取正確的欄位。
  • type - 僅在使用伺服器端處理時,preDefined 物件中才需要此屬性。這表示伺服器可以知道正在套用搜尋的欄位類型。在某些情況下,這是必需的,因為某些條件的行為在欄位類型之間略有不同。當使用用戶端設定時,此屬性不會對 SearchBuilder 的行為進行任何變更。
  • value - 用於篩選的值。它是一個陣列,因此可以設定需要多個輸入的條件,例如 *介於*。對於僅需要單一輸入的條件,陣列將只需要一個值。對於需要多個輸入的條件,輸入應按照此陣列中設定的順序填入。

logic

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'
}