索引列

高度互动的表格通常需要“计数器”列,包含表格中每行的位置。此列不应该可以排序,并且会随着最终用户更改应用于表格的排序和搜寻而动态改变。

本范例显示 DataTables 如何达成此目标,其中第一列是计数器列,并在进行排序或搜寻时更新。这是透过监听表格发出的 ordersearch 事件来完成的。侦测到这些事件时,cells().every() 方法会用于迭代表格第一列中的单元格,并使用 cell().data() 更新他们的内容(如有需要)。请注意,filterorder 选项用于 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 文档中描述的协议

      其他示例