介绍 SearchBuilder
SearchBuilder 是 DataTables 的一个新扩展,它允许最终用户对您的表格应用高级过滤。SearchBuilder 比 SearchPanes 复杂,它允许使用各种条件对列进行过滤,而不仅仅是精确匹配。条件可以组合在一起以创建复杂的过滤器,这些过滤器可以无缝地应用于表格。因此,SearchBuilder 是一种非常有效的方法,可以一次使用多个列上的复杂条件来缩小结果范围。
您可以在下面看到一个示例 - 点击“添加条件”按钮开始构建您自己的过滤器
姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪水 |
---|---|---|---|---|---|
Tiger Nixon | 系统架构师 | 爱丁堡 | 61 | 2011-04-25 | $320,800 |
Garrett Winters | 会计 | 东京 | 63 | 2011-07-25 | $170,750 |
Ashton Cox | 初级技术作家 | 旧金山 | 66 | 2009-01-12 | $86,000 |
Cedric Kelly | 高级 Javascript 开发人员 | 爱丁堡 | 22 | 2012-03-29 | $433,060 |
Airi Satou | 会计 | 东京 | 33 | 2008-11-28 | $162,700 |
Brielle Williamson | 集成专家 | 纽约 | 61 | 2012-12-02 | $372,000 |
Herrod Chandler | 销售助理 | 旧金山 | 59 | 2012-08-06 | $137,500 |
Rhona Davidson | 集成专家 | 东京 | 55 | 2010-10-14 | $327,900 |
Colleen Hurst | Javascript 开发人员 | 旧金山 | 39 | 2009-09-15 | $205,500 |
Sonya Frost | 软件工程师 | 爱丁堡 | 23 | 2008-12-13 | $103,600 |
Jena Gaines | 办公室经理 | 伦敦 | 30 | 2008-12-19 | $90,560 |
Quinn Flynn | 支持主管 | 爱丁堡 | 22 | 2013-03-03 | $342,000 |
Charde Marshall | 区域总监 | 旧金山 | 36 | 2008-10-16 | $470,600 |
Haley Kennedy | 高级营销设计师 | 伦敦 | 43 | 2012-12-18 | $313,500 |
Tatyana Fitzpatrick | 区域总监 | 伦敦 | 19 | 2010-03-17 | $385,750 |
Michael Silva | 营销设计师 | 伦敦 | 66 | 2012-11-27 | $198,500 |
Paul Byrd | 首席财务官 (CFO) | 纽约 | 64 | 2010-06-09 | $725,000 |
Gloria Little | 系统管理员 | 纽约 | 59 | 2009-04-10 | $237,500 |
Bradley Greer | 软件工程师 | 伦敦 | 41 | 2012-10-13 | $132,000 |
Dai Rios | 人事主管 | 爱丁堡 | 35 | 2012-09-26 | $217,500 |
Jenette Caldwell | 开发主管 | 纽约 | 30 | 2011-09-03 | $345,000 |
Yuri Berry | 首席营销官 (CMO) | 纽约 | 40 | 2009-06-25 | $675,000 |
Caesar Vance | 售前支持 | 纽约 | 21 | 2011-12-12 | $106,450 |
Doris Wilder | 销售助理 | 悉尼 | 23 | 2010-09-20 | $85,600 |
Angelica Ramos | 首席执行官 (CEO) | 伦敦 | 47 | 2009-10-09 | $1,200,000 |
Gavin Joyce | 开发人员 | 爱丁堡 | 42 | 2010-12-22 | $92,575 |
Jennifer Chang | 区域总监 | 新加坡 | 28 | 2010-11-14 | $357,650 |
Brenden Wagner | 软件工程师 | 旧金山 | 28 | 2011-06-07 | $206,850 |
Fiona Green | 首席运营官 (COO) | 旧金山 | 48 | 2010-03-11 | $850,000 |
Shou Itou | 区域营销 | 东京 | 20 | 2011-08-14 | $163,000 |
Michelle House | 集成专家 | 悉尼 | 37 | 2011-06-02 | $95,400 |
Suki Burks | 开发人员 | 伦敦 | 53 | 2009-10-22 | $114,500 |
Prescott Bartlett | 技术作家 | 伦敦 | 27 | 2011-05-07 | $145,000 |
Gavin Cortez | 团队领导 | 旧金山 | 22 | 2008-10-26 | $235,500 |
Martena Mccray | 售后支持 | 爱丁堡 | 46 | 2011-03-09 | $324,050 |
Unity Butler | 营销设计师 | 旧金山 | 47 | 2009-12-09 | $85,675 |
Howard Hatfield | 办公室经理 | 旧金山 | 51 | 2008-12-16 | $164,500 |
Hope Fuentes | 秘书 | 旧金山 | 41 | 2010-02-12 | $109,850 |
Vivian Harrell | 财务总监 | 旧金山 | 62 | 2009-02-14 | $452,500 |
Timothy Mooney | 办公室经理 | 伦敦 | 37 | 2008-12-11 | $136,200 |
Jackson Bradshaw | 总监 | 纽约 | 65 | 2008-09-26 | $645,750 |
Olivia Liang | 支持工程师 | 新加坡 | 64 | 2011-02-03 | $234,500 |
Bruno Nash | 软件工程师 | 伦敦 | 38 | 2011-05-03 | $163,500 |
Sakura Yamamoto | 支持工程师 | 东京 | 37 | 2009-08-19 | $139,575 |
Thor Walton | 开发人员 | 纽约 | 61 | 2013-08-11 | $98,540 |
Finn Camacho | 支持工程师 | 旧金山 | 47 | 2009-07-07 | $87,500 |
Serge Baldwin | 数据协调员 | 新加坡 | 64 | 2012-04-09 | $138,575 |
Zenaida Frank | 软件工程师 | 纽约 | 63 | 2010-01-04 | $125,250 |
Zorita Serrano | 软件工程师 | 旧金山 | 56 | 2012-06-01 | $115,000 |
Jennifer Acosta | 初级 Javascript 开发人员 | 爱丁堡 | 43 | 2013-02-01 | $75,650 |
Cara Stevens | 销售助理 | 纽约 | 46 | 2011-12-06 | $145,600 |
Hermione Butler | 区域总监 | 伦敦 | 47 | 2011-03-21 | $356,250 |
Lael Greer | 系统管理员 | 伦敦 | 21 | 2009-02-27 | $103,500 |
Jonas Alexander | 开发人员 | 旧金山 | 30 | 2010-07-14 | $86,500 |
Shad Decker | 区域总监 | 爱丁堡 | 51 | 2008-11-13 | $183,000 |
Michael Bruce | Javascript 开发人员 | 新加坡 | 29 | 2011-06-27 | $183,000 |
Donna Snider | 客户支持 | 纽约 | 27 | 2011-01-25 | $112,000 |
姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪水 |
下载
SearchBuilder 扩展可以通过 我们的下载构建器 和我们 CDN(以下链接)中的直接访问在 DataTables CDN 上使用。如果您更喜欢使用包管理器,您也可以从 NPM、NuGET 和 Composer 安装它。
功能
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 的初始版本的任何反馈,以及您认为将来会使扩展受益的任何其他功能!