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