页脚回调

通过使用 DataTables 提供的页眉和页脚回调操作功能(headerCallbackfooterCallback),可以执行一些功能强大且有用的数据操作功能,例如汇总表格中的数据。

以下示例显示了一个页脚回调,它用于使用 column().data() API 方法对列(可见数据和隐藏数据)中的数据进行汇总,并使用 column().footer() 将值写入页脚。

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

下面显示的 Javascript 用于初始化此示例中显示的表格

$('#example').DataTable({ footerCallback: function (row, data, start, end, display) { var api = this.api(); // 移除格式以获取求和的整数数据 var intVal = function (i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; // 所有页面的总计 total = api .column(4) .data() .reduce(function (a, b) { return intVal(a) + intVal(b); }, 0); // 本页的总计 pageTotal = api .column(4, { page: 'current' }) .data() .reduce(function (a, b) { return intVal(a) + intVal(b); }, 0); // 更新页脚 $(api.column(4).footer()).html( '$' + pageTotal + ' ( $' + total + ' total)' ); } });
new DataTable('#example', { footerCallback: function (row, data, start, end, display) { let api = this.api(); // 移除格式以获取求和的整数数据 let intVal = function (i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; // 所有页面的总计 total = api .column(4) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // 本页的总计 pageTotal = api .column(4, { page: 'current' }) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // 更新页脚 api.column(4).footer().innerHTML = '$' + pageTotal + ' ( $' + total + ' total)'; } });

除了以上代码之外,以下 Javascript 库文件也被加载以供此示例使用

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

    此示例使用了一些超出库文件(如下)加载的 CSS,以便正确显示表格。下面显示了使用的附加 CSS

    th { white-space: nowrap; }

    以下 CSS 库文件被加载以供此示例使用,以提供表格的样式

      此表格通过 Ajax 加载数据。下面显示了已加载的最新数据。此数据将在加载任何额外数据时自动更新。

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

      其他示例