API 插件方法

DataTables API 被设计为完全可扩展的,使用 DataTable.Api.register 函数很容易添加自定义函数。此函数带有两个参数;第一个参数是将被添加的方法的名称及其链接层次,第二个参数是函数本身。

此示例显示了如何轻松地将 sum() 方法添加到 API 中,这样你可以在一行内获得某一列的总和:table.column().data().sum()。由于方法的链接,这允许 sum() 非常容易地提供所选列的总和,并且仅将总和限制于当前页、经过筛选的数据或所有页。这是使用 column() 方法的选项及其选择项来实现此操作的。

有关 API 插件的更多信息;请参阅 插件开发文档 以创建它们及其要求。


姓名 职位 办公室 年龄 入职日期 薪资
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
卡拉·史蒂文斯 销售助理 纽约 46 2011-12-06 $145,600
赫敏·巴特勒 区域总监 伦敦 47 2011-03-21 $356,250
拉埃尔·格里尔 系统管理员 伦敦 21 2009-02-27 $103,500
乔纳斯·亚历山大 开发人员 旧金山 30 2010-07-14 $86,500
谢德·德克 区域总监 爱丁堡 51 2008-11-13 $183,000
迈克尔·布鲁斯 Javascript 开发人员 新加坡 29 2011-06-27 $183,000
唐娜·斯奈德 客户支持 纽约 27 2011-01-25 $112,000
姓名 职位 办公室 年龄 入职日期 薪资
  • JavaScript
  • HTML
  • CSS
  • Ajax
  • 服务器端脚本
  • 评论 (0)

为了初始化此示例中显示的表格,使用以下所展示的 JavaScript

1
// 用 DataTables 注册一个 `sum` API 方法 DataTable.Api.register('column().data().sum()', function () { return this.reduce(function (a, b) { var x = parseFloat(a) || 0; var y = parseFloat(b) || 0; return x + y; }); }); // 初始化表格并调用取得隐藏节点。 var table = $('#example').DataTable(); $('#sum-all').on('click', function () { let text = 'Column sum is: ' + table.column(3).data().sum(); $('#demo-output').append($('<div>').text(text)); }); $('#sum-visible').on('click', function () { let text = 'Column sum is: ' + table.column(3, { page: 'current' }).data().sum(); $('#demo-output').append($('<div>').text(text)); });
1
// 为了演示,向输出框添加文本函数 addOutput(text) { let newEl = document.createElement('div'); newEl.textContent = text; document.querySelector('#demo-output').prepend(newEl); } // 用 DataTables 注册一个 `sum` API 方法 DataTable.Api.register('column().data().sum()', function () { return this.reduce(function (a, b) { let x = parseFloat(a) || 0; let y = parseFloat(b) || 0; return x + y; }); }); // 初始化表格并调用取得隐藏节点。 const table = new DataTable('#example'); document.querySelector('#sum-all').addEventListener('click', function () { addOutput('Column sum is: ' + table.column(3).data().sum()); }); document.querySelector('#sum-visible').addEventListener('click', function () { addOutput( 'Column sum is: ' + table.column(3, { page: 'current' }).data().sum() ); });

除了以上代码外,为了使用此示例,以下 JavaScript 库文件已加载

    以下所示的 HTML 是 DataTables 增强过之前的原始的 HTML 表格元素

    为了正确显示表格,此示例使用一点额外的 CSS,不仅来自于库文件(如下所示),还包括使用过此额外 CSS。以下显示了使用过的额外 CSS

    1
     

    加载以下 CSS 库文件用于此示例,以更改表格样式

      此表格通过 Ajax 加载数据。已经加载的最新数据显示如下。随着加载的任何附加数据,这些数据将自动更新。

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

      No comments posted for this page yet. Be the first to contribute!

      Post new comment

      Contributions in the form of tips, code snippets and suggestions for the above material are very welcome. To post a comment, please use the form below. Text is formatted by Markdown.

      To post comments, please sign in to your DataTables account, or register:

      Any questions posted here will be deleted without being published.
      Please post questions in the Forums. Comments are moderated.

      其他示例