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

介绍 SearchBuilder

SearchBuilder 是 DataTables 的一个新扩展,它允许最终用户对您的表格应用高级过滤。SearchBuilder 比 SearchPanes 复杂,它允许使用各种条件对列进行过滤,而不仅仅是精确匹配。条件可以组合在一起以创建复杂的过滤器,这些过滤器可以无缝地应用于表格。因此,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 和 Semnatic 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 的初始版本的任何反馈,以及您认为将来会使扩展受益的任何其他功能!