重新排序事件

提供一个 UI,允许终端用户重新排序表格,但这只是其中一个方面 - 你可能希望终端用户造成的变更能够对数据库或某些其他数据存储产生影响。这可以通过侦听 row-reorder 事件来实现。

此示例演示如何侦听 row-reorder 事件,并在触发该事件后采取措施。在这种情况下,我们只需输出有关页面更改的数据,但更复杂的用例可能涉及使用 Ajax 通知服务器端有关该变更的信息。

使用 RowReorder 的 Editor 利用 Editor 的多行编辑功能的示例可在 Editor 网站上找到。

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

下面显示的 JavaScript 用于初始化本示例中所示的表格

var table = $('#example').DataTable({ rowReorder: true }); table.on('row-reorder', function (e, diff, edit) { var result = 'Reorder started on row: ' + edit.triggerRow.data()[1] + '<br>'; for (var i = 0, ien = diff.length; i < ien; i++) { var rowData = table.row(diff[i].node).data(); result += rowData[1] + ' updated to be in position ' + diff[i].newData + ' (was ' + diff[i].oldData + ')<br>'; } $('#result').html('Event result:<br>' + result); });
let table = new DataTable('#example', { rowReorder: true }); table.on('row-reorder', function (e, diff, edit) { let result = 'Reorder started on row: ' + edit.triggerRow.data()[1] + '<br>'; for (var i = 0, ien = diff.length; i < ien; i++) { let rowData = table.row(diff[i].node).data(); result += `${rowData[1]} updated to be in position ${diff[i].newData} ` + `(was ${diff[i].oldData})<br>`; } document.querySelector('#result').innerHTML = 'Event result:<br>' + result; });

除了上述代码外,还加载了以下 JavaScript 库文件以使用在本示例中

    下面显示的 HTML 是原始 HTML 表元素,它尚未通过 DataTables 增强

    本示例除了从库文件中加载的内容(如下所示)之外,还使用了一些额外的 CSS,以便正确显示表格。下面显示了使用的附加 CSS

    在本文档中加载了以下 CSS 库文件以便设置表格的样式

      此表格通过 Ajax 加载数据。已加载的最新数据显示在下面。当加载任何附加数据时,该数据将自动更新。

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

      其他示例