2020 年 9 月 15 日,星期二
作者:Sandy Galloway

SearchBuilder 介紹

SearchBuilder 是 DataTables 的一個新擴充套件,它允許終端使用者對您的表格應用進階篩選。相較於 SearchPanes 的複雜度提升,SearchBuilder 允許使用各種條件篩選欄位,而不僅僅是精確匹配。條件可以分組在一起,以建立無縫應用於表格的複雜篩選器。因此,SearchBuilder 是一種非常有效的方式,可以使用多個欄位的複雜條件來縮小結果範圍。

您可以在下方看到一個範例 - 按一下新增條件按鈕開始建立您自己的篩選器

姓名職位辦公室年齡開始日期薪資
Tiger Nixon系統架構師愛丁堡612011-04-25$320,800
Garrett Winters會計師東京632011-07-25$170,750
Ashton Cox初級技術作者舊金山662009-01-12$86,000
Cedric Kelly資深 Javascript 開發人員愛丁堡222012-03-29$433,060
Airi Satou會計師東京332008-11-28$162,700
Brielle Williamson整合專員紐約612012-12-02$372,000
Herrod Chandler銷售助理舊金山592012-08-06$137,500
Rhona Davidson整合專員東京552010-10-14$327,900
Colleen HurstJavascript 開發人員舊金山392009-09-15$205,500
Sonya Frost軟體工程師愛丁堡232008-12-13$103,600
Jena Gaines辦公室經理倫敦302008-12-19$90,560
Quinn Flynn支援主管愛丁堡222013-03-03$342,000
Charde Marshall區域總監舊金山362008-10-16$470,600
Haley Kennedy資深行銷設計師倫敦432012-12-18$313,500
Tatyana Fitzpatrick區域總監倫敦192010-03-17$385,750
Michael Silva行銷設計師倫敦662012-11-27$198,500
Paul Byrd財務長 (CFO)紐約642010-06-09$725,000
Gloria Little系統管理員紐約592009-04-10$237,500
Bradley Greer軟體工程師倫敦412012-10-13$132,000
Dai Rios人事主管愛丁堡352012-09-26$217,500
Jenette Caldwell開發主管紐約302011-09-03$345,000
Yuri Berry行銷長 (CMO)紐約402009-06-25$675,000
Caesar Vance銷售前支援紐約212011-12-12$106,450
Doris Wilder銷售助理雪梨232010-09-20$85,600
Angelica Ramos執行長 (CEO)倫敦472009-10-09$1,200,000
Gavin Joyce開發人員愛丁堡422010-12-22$92,575
Jennifer Chang區域總監新加坡282010-11-14$357,650
Brenden Wagner軟體工程師舊金山282011-06-07$206,850
Fiona Green營運長 (COO)舊金山482010-03-11$850,000
Shou Itou區域行銷東京202011-08-14$163,000
Michelle House整合專員雪梨372011-06-02$95,400
Suki Burks開發人員倫敦532009-10-22$114,500
Prescott Bartlett技術作者倫敦272011-05-07$145,000
Gavin Cortez團隊領導舊金山222008-10-26$235,500
Martena Mccray銷售後支援愛丁堡462011-03-09$324,050
Unity Butler行銷設計師舊金山472009-12-09$85,675
Howard Hatfield辦公室經理舊金山512008-12-16$164,500
Hope Fuentes秘書舊金山412010-02-12$109,850
Vivian Harrell財務總監舊金山622009-02-14$452,500
Timothy Mooney辦公室經理倫敦372008-12-11$136,200
Jackson Bradshaw總監紐約652008-09-26$645,750
Olivia Liang支援工程師新加坡642011-02-03$234,500
Bruno Nash軟體工程師倫敦382011-05-03$163,500
Sakura Yamamoto支援工程師東京372009-08-19$139,575
Thor Walton開發人員紐約612013-08-11$98,540
Finn Camacho支援工程師舊金山472009-07-07$87,500
Serge Baldwin資料協調員新加坡642012-04-09$138,575
Zenaida Frank軟體工程師紐約632010-01-04$125,250
Zorita Serrano軟體工程師舊金山562012-06-01$115,000
Jennifer Acosta初級 Javascript 開發人員愛丁堡432013-02-01$75,650
Cara Stevens銷售助理紐約462011-12-06$145,600
Hermione Butler區域總監倫敦472011-03-21$356,250
Lael Greer系統管理員倫敦212009-02-27$103,500
Jonas Alexander開發人員舊金山302010-07-14$86,500
Shad Decker區域總監愛丁堡512008-11-13$183,000
Michael BruceJavascript 開發人員新加坡292011-06-27$183,000
Donna Snider客戶支援紐約272011-01-25$112,000
姓名職位辦公室年齡開始日期薪資

下載

SearchBuilder 擴充套件可透過 我們的下載產生器 和直接從我們的 CDN 存取 (如下方的連結) 在 DataTables CDN 上取得。如果您偏好使用套件管理員,您也可以從 NPMNuGETComposer 安裝它。

CSS
JS

功能

SearchBuilder 的推出為 DataTables 帶來了全新的方式來應用複雜的篩選。它的核心是一個介面,可讓使用者根據他們設定的條件快速篩選表格。在初始化時,SearchBuilder 會分析 DataTable 並擷取欄位及其資料類型。選取欄位後,條件選取會填入該欄位的所有可用條件,這些條件會根據資料類型而改變。SearchBuilder 預設允許篩選所有欄位,但當然可以使用 searchBuilder.columns 選項來設定。選取欄位後,相關條件會在條件選取元素中提供。此處的另一個選取會顯示相關的輸入方法,以收集要篩選此條件的值,無論是選取或輸入。對於空白條件等,不需要額外的值,因此不會提供輸入方法。

每個「條件」都可以放置在群組中。群組允許設定邏輯類型。例如,您可能希望篩選後的列滿足條件 X 和 Y,或僅滿足條件 Z。群組和子群組使這成為可能。SearchBuilder 中條件、群組、子群組或深度的數量沒有限制。這表示您可以建立您想要的複雜搜尋條件。

SearchBuilder 的建構考慮到了自訂。我們很清楚,你們許多人會想要新增自己的條件,或修改現有的條件以符合您的需求。關於如何新增您自己的條件的完整文件,可在文件中取得。

使用方式

除了核心功能和自訂條件設定選項之外,SearchBuilder 還有一些設定選項。這些包括設定深度限制、群組的預設邏輯和預先定義的條件。如果您想要更細微的樣式方法,也可以快速選擇將 SearchBuilder 中的顏色設為灰階。但一如既往,您也可以將自己的樣式新增至 SearchBuilder。

版面配置

SearchBuilder 是使用 searchBuilder 功能和 layout 選項插入頁面的,如下所示

$('#myTable').DataTable({
    layout: {
        top1: 'searchBuilder'
    }
    dom: 'Qlfrtip'
});

如果您使用的是舊版 DataTables 1.x,則插入點是使用 DataTables 的 dom 選項完成的。Q 選項會告知 DataTables 在哪裡顯示 SearchBuilder - 例如

$('#myTable').DataTable({
    dom: 'Qlfrtip'
});

對於 Bootstrap 和 Semantic UI 等樣式庫,您可能會發現使用 searchBuilder.container() 方法來取得 SearchBuilder DOM 元素,並直接將其插入文件中會更容易 - 例如

var table = $('#example').DataTable({
    searchBuilder: true
});
table.searchBuilder.container().prependTo(table.table().container());

SearchBuilder 設定為根據螢幕寬度自動調整其版面配置,無需開發人員進行額外工作。

未來工作

與 SearchPanes 的初始版本一樣,伺服器端處理在此 1.0.0 版本中也不可用。我們將在未來考慮新增此功能,同時也注意到在客戶端處理大型資料集時,SearchBuilder 的速度已經比 SearchPanes 快得多。

雖然這只是 1.0.0 版本,但在過去幾個月中已進行了大量的工作和測試,以確保 SearchBuilder 是一個強大的擴充套件,已準備好在生產環境中使用。

我希望 SearchBuilder 能為您的專案帶來一些改進,並且一如既往,我們鼓勵您在論壇中提供您對 SearchBuilder 這個初始版本的任何回饋,以及您認為未來有助於擴充套件的任何其他功能!