自定义过滤选项

此示例展示如何在 SearchPanes 中设置自定义比较函数。

姓名 职位 办公室 年龄 薪资
Tiger Nixon 系统架构师 爱丁堡 61 $320,800
Garrett Winters 会计 东京 63 $170,750
Ashton Cox 初级技术作家 旧金山 66 $86,000
Cedric Kelly 高级 Javascript 开发者 爱丁堡 22 $433,060
Airi Satou 会计 东京 33 $162,700
Brielle Williamson 集成专家 纽约 61 $372,000
Herrod Chandler 销售助理 旧金山 59 $137,500
Rhona Davidson 集成专家 东京 55 $327,900
Colleen Hurst Javascript 开发者 旧金山 39 $205,500
Sonya Frost 软件工程师 爱丁堡 23 $103,600
Jena Gaines 办公室经理 伦敦 30 $90,560
Quinn Flynn 支持主管 爱丁堡 22 $342,000
Charde Marshall 区域总监 旧金山 36 $470,600
Haley Kennedy 高级营销设计师 伦敦 43 $313,500
Tatyana Fitzpatrick 区域总监 伦敦 19 $385,750
Michael Silva 营销设计师 伦敦 66 $198,500
Paul Byrd 首席财务官 (CFO) 纽约 64 $725,000
Gloria Little 系统管理员 纽约 59 $237,500
Bradley Greer 软件工程师 伦敦 41 $132,000
Dai Rios 人事主管 爱丁堡 35 $217,500
Jenette Caldwell 开发主管 纽约 30 $345,000
Yuri Berry 首席营销官 (CMO) 纽约 40 $675,000
Caesar Vance 售前支持 纽约 21 $106,450
Doris Wilder 销售助理 悉尼 23 $85,600
Angelica Ramos 首席执行官 (CEO) 伦敦 47 $1,200,000
Gavin Joyce 开发者 爱丁堡 42 $92,575
Jennifer Chang 区域总监 新加坡 28 $357,650
Brenden Wagner 软件工程师 旧金山 28 $206,850
Fiona Green 首席运营官 (COO) 旧金山 48 $850,000
Shou Itou 区域营销 东京 20 $163,000
Michelle House 集成专家 悉尼 37 $95,400
Suki Burks 开发者 伦敦 53 $114,500
Prescott Bartlett 技术作家 伦敦 27 $145,000
Gavin Cortez 团队领导 旧金山 22 $235,500
Martena Mccray 售后支持 爱丁堡 46 $324,050
Unity Butler 营销设计师 旧金山 47 $85,675
Howard Hatfield 办公室经理 旧金山 51 $164,500
Hope Fuentes 秘书 旧金山 41 $109,850
Vivian Harrell 财务总监 旧金山 62 $452,500
Timothy Mooney 办公室经理 伦敦 37 $136,200
Jackson Bradshaw 主管 纽约 65 $645,750
Olivia Liang 支持工程师 新加坡 64 $234,500
Bruno Nash 软件工程师 伦敦 38 $163,500
Sakura Yamamoto 支持工程师 东京 37 $139,575
Thor Walton 开发者 纽约 61 $98,540
Finn Camacho 支持工程师 旧金山 47 $87,500
Serge Baldwin 数据协调员 新加坡 64 $138,575
Zenaida Frank 软件工程师 纽约 63 $125,250
Zorita Serrano 软件工程师 旧金山 56 $115,000
Jennifer Acosta 初级 Javascript 开发者 爱丁堡 43 $75,650
Cara Stevens 销售助理 纽约 46 $145,600
Hermione Butler 区域总监 伦敦 47 $356,250
Lael Greer 系统管理员 伦敦 21 $103,500
Jonas Alexander 开发者 旧金山 30 $86,500
Shad Decker 区域总监 爱丁堡 51 $183,000
Michael Bruce Javascript 开发者 新加坡 29 $183,000
Donna Snider 客户支持 纽约 27 $112,000
姓名 职位 办公室 年龄 薪资
  • Javascript
  • HTML
  • CSS
  • Ajax
  • 服务器端脚本
  • 评论

以下展示的 Javascript 用于初始化本示例中显示的表格

var dt = $('#example').DataTable({ columnDefs: [ { orderable: false, render: DataTable.render.select(), searchPanes: { show: true, options: [ { label: '已选中', value: function (rowData, rowIdx) { return this.row(rowIdx, { selected: true }).any(); } }, { label: '未选中', value: function (rowData, rowIdx) { return this.row(rowIdx, { selected: true }).any() === false; } } ] }, targets: [0] }, { searchPanes: { options: [ { label: '小于 20', value: function (rowData, rowIdx) { return rowData[4] < 20; } }, { label: '20 到 30', value: function (rowData, rowIdx) { return rowData[4] <= 30 && rowData[4] >= 20; } }, { label: '30 到 40', value: function (rowData, rowIdx) { return rowData[4] <= 40 && rowData[4] >= 30; } }, { label: '40 到 50', value: function (rowData, rowIdx) { return rowData[4] <= 50 && rowData[4] >= 40; } }, { label: '50 到 60', value: function (rowData, rowIdx) { return rowData[4] <= 60 && rowData[4] >= 50; } }, { label: '大于 60', value: function (rowData, rowIdx) { return rowData[4] > 60; } } ] }, targets: [4] }, { searchPanes: { options: [ { label: '非爱丁堡', value: function (rowData, rowIdx) { return rowData[3] !== '爱丁堡'; } }, { label: '非伦敦', value: function (rowData, rowIdx) { return rowData[3] !== '伦敦'; } } ], combiner: 'and' }, targets: [3] } ], layout: { top1: { searchPanes: { viewTotal: true, columns: [0, 3, 4] } } }, select: { style: 'os', selector: 'td:first-child' }, order: [[1, 'asc']] }); dt.on('select.dt', () => { dt.searchPanes.rebuildPane(0, true); }); dt.on('deselect.dt', () => { dt.searchPanes.rebuildPane(0, true); });
var dt = new DataTable('#example', { columnDefs: [ { orderable: false, render: DataTable.render.select(), searchPanes: { show: true, options: [ { label: '已选中', value: function (rowData, rowIdx) { return this.row(rowIdx, { selected: true }).any(); } }, { label: '未选中', value: function (rowData, rowIdx) { return this.row(rowIdx, { selected: true }).any() === false; } } ] }, targets: [0] }, { searchPanes: { options: [ { label: '小于 20', value: function (rowData, rowIdx) { return rowData[4] < 20; } }, { label: '20 到 30', value: function (rowData, rowIdx) { return rowData[4] <= 30 && rowData[4] >= 20; } }, { label: '30 到 40', value: function (rowData, rowIdx) { return rowData[4] <= 40 && rowData[4] >= 30; } }, { label: '40 到 50', value: function (rowData, rowIdx) { return rowData[4] <= 50 && rowData[4] >= 40; } }, { label: '50 到 60', value: function (rowData, rowIdx) { return rowData[4] <= 60 && rowData[4] >= 50; } }, { label: '大于 60', value: function (rowData, rowIdx) { return rowData[4] > 60; } } ] }, targets: [4] }, { searchPanes: { options: [ { label: '非爱丁堡', value: function (rowData, rowIdx) { return rowData[3] !== '爱丁堡'; } }, { label: '非伦敦', value: function (rowData, rowIdx) { return rowData[3] !== '伦敦'; } } ], combiner: 'and' }, targets: [3] } ], layout: { top1: { searchPanes: { viewTotal: true, columns: [0, 3, 4] } } }, select: { style: 'os', selector: 'td:first-child' }, order: [[1, 'asc']] }); dt.on('select.dt', () => { dt.searchPanes.rebuildPane(0, true); }); dt.on('deselect.dt', () => { dt.searchPanes.rebuildPane(0, true); });

除了上面的代码,以下 Javascript 库文件也被加载到本示例中使用

    以下展示的 HTML 是原始的 HTML 表格元素,在被 DataTables 增强之前

    此示例除了从库文件(如下)加载的 CSS 之外,还使用了一些额外的 CSS,以确保表格的正确显示。以下展示了使用的额外 CSS

    以下 CSS 库文件被加载到本示例中,用于提供表格的样式

      此表格通过 Ajax 加载数据。以下展示了最新加载的数据。这些数据将随着加载的任何额外数据而自动更新。

      以下展示了用于执行此表格服务器端处理的脚本。请注意,这只是一个使用 PHP 的示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议

      其他示例