索引列
高度互动的表格通常需要“计数器”列,包含表格中每行的位置。此列不应该可以排序,并且会随着最终用户更改应用于表格的排序和搜寻而动态改变。
本范例显示 DataTables 如何达成此目标,其中第一列是计数器列,并在进行排序或搜寻时更新。这是透过监听表格发出的 order
和 search
事件来完成的。侦测到这些事件时,cells().every()
方法会用于迭代表格第一列中的单元格,并使用 cell().data()
更新他们的内容(如有需要)。请注意,filter
和 order
选项用于 column()
方法,以取得当前顺序和当前应用的筛选器的节点。
姓名 | 职位 | 办公室 | 年龄 | 薪资 | |
---|---|---|---|---|---|
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 | |
詹妮弗·阿科斯塔 | 初级 Javascript 开发人员 | 爱丁堡 | 43 | $75,650 | |
卡拉·史蒂文斯 | 销售助理 | 纽约 | 46 | $145,600 | |
赫敏·巴特勒 | 区域总监 | 伦敦 | 47 | $356,250 | |
莱尔·格里尔 | 系统管理员 | 伦敦 | 21 | $103,500 | |
乔纳斯·亚历山大 | 开发者 | 旧金山 | 30 | $86,500 | |
沙德·德克尔 | 区域总监 | 爱丁堡 | 51 | $183,000 | |
迈克尔·布鲁斯 | Javascript 开发人员 | 新加坡 | 29 | $183,000 | |
唐娜·斯奈德 | 客服支持 | 纽约 | 27 | $112,000 | |
姓名 | 职位 | 办公室 | 年龄 | 薪资 |
- Javascript
- HTML
- CSS
- Ajax
- 服务器端脚本
- 注释
下面所示的 Javascript 用于初始化此示例中显示的表格
var table = $('#example').DataTable({ columnDefs: [ { searchable: false, orderable: false, targets: 0 } ], order: [[1, 'asc']] }); table .on('order.dt search.dt', function () { var i = 1; table .cells(null, 0, { search: 'applied', order: 'applied' }) .every(function (cell) { this.data(i++); }); }) .draw();
const table = new DataTable('#example', { columnDefs: [ { searchable: false, orderable: false, targets: 0 } ], order: [[1, 'asc']] }); table .on('order.dt search.dt', function () { let i = 1; table .cells(null, 0, { search: 'applied', order: 'applied' }) .every(function (cell) { this.data(i++); }); }) .draw();
除上述代码外,还加载以下 Javascript 库文件以在此示例中使用
下面显示的 HTML 是原始 HTML 表格元素,在 DataTables 对其进行优化之前
此示例使用了一点额外的 CSS,除了从库文件中加载的内容(如下所示)之外,还为了正确显示表格。下面显示了使用的附加 CSS
加载以下 CSS 库文件以在此示例中使用,为表格提供样式
此表格通过 Ajax 加载数据。下面显示了加载的最新数据。此数据将随着加载的任何其他数据自动更新。
下面显示用于对此表格执行服务器端处理的脚本。请注意,这只是一个使用 PHP 的示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议。