javascript - DataTables - 使用 fnUpdate 更新行替换不同的行

标签 javascript jquery datatables row edit

每行都有编辑按钮,点击时,行中的数据将传递到模态,用户可以在模态中更改它,然后保存 在模态中它应该更新该行。

我正在使用fnUpdate,但是不是更新(替换)预期行,而是替换不同的行...

var uId                 = $(this).closest('.modal-content').find('input[name=uId]').val();
var fNameUpdated        = $(this).closest('.modal-content').find('input[name=fName]').val();
var lNameUpdated        = $(this).closest('.modal-content').find('input[name=lName]').val();
var uTypeUpdated        = $(this).closest('.modal-content').find('.dropdown-toggle').attr('title');
var uNameUpdated        = $(this).closest('.modal-content').find('input[name=uName]').val();
var uPasswordUpdated    = $(this).closest('.modal-content').find('input[name=password]').val();
var buttons             = 'buttons';

// updating row using fnUpdate from datatable
var oTable = $('#dataTables-example').dataTable();
oTable.fnUpdate( [uId, fNameUpdated, lNameUpdated, uTypeUpdated, uNameUpdated, uPasswordUpdated, buttons], trIndex );

trIndex 较早收到:

var trIndex;
$('#dataTables-example').dataTable().find('tbody').on('click', 'tr', function () {
   trIndex = this.rowIndex;
});

编辑第 1 行之前的表格:

+-----+------------+-----------+---------+----------+------+---------------+
| ID  | First Name | Last Name |  Type   | Username | Pass |    Action     |
+-----+------------+-----------+---------+----------+------+---------------+
| 1   | Mark       | Knopfler  | admin   | Mark     | pass | Edit / Delete |
| 2   | Peter      | Pan       | admin   | Peter    | pass | Edit / Delete |
| 3   | Bob        | Dylan     | regUser | Bob      | pass | Edit / Delete |
| 4   | Harry      | Angel     | regUser | Harry    | pass | Edit / Delete |
| ... | ...        | ...       | ...     | ...      | ...  | ...           |
+-----+------------+-----------+---------+----------+------+---------------+

编辑第 1 行后的表格:

+-----+------------+-----------+---------+----------+------+---------------+
| ID  | First Name | Last Name |  Type   | Username | Pass |    Action     |
+-----+------------+-----------+---------+----------+------+---------------+
| 1   | Mark       | Knopfler  | admin   | Mark     | pass | Edit / Delete |
| 1   | Harrison   | Ford      | regUser | Harrison | pass | Edit / Delete |
| 3   | Bob        | Dylan     | regUser | Bob      | pass | Edit / Delete |
| 4   | Harry      | Angel     | regUser | Harry    | pass | Edit / Delete |
| ... | ...        | ...       | ...     | ...      | ...  | ...           |
+-----+------------+-----------+---------+----------+------+---------------+

请大家指点一下。

编辑:

1)可能有一种更有效的收集数据的方法

2) 字段通过仅用于测试目的

最佳答案

找到的解决方案:

显然,接收 trIndex 的方法是错误的,应使用以下内容进行更正:

$('#dataTables-example tbody').on('click', 'td', function () {
    var tr = $(this).closest('tr');
    rowIndex = tr.index();
});

以上似乎工作正常。

关于javascript - DataTables - 使用 fnUpdate 更新行替换不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258075/

相关文章:

javascript - 在 Javascript 中,如何检测浏览器窗口何时在 View 中?

javascript - 更新事件的 Angular 范围

javascript - 使用 Angular 和 ng-model 更改模型时,不会更新 Materialise select

javascript - 使用 Jquery 切换 div 后使其保持可见

javascript - 绑定(bind) jquery 数据表给出错误 "Requested unknown parameter ' 0' from the data source for row 0"

javascript - 使用 javascript 验证图像类型

javascript - 放大悬停在正确的位置不起作用

javascript - MVC/JavaScript/Razor - 如何从按钮打开新 View

javascript - 数据表(行详细信息): Uncaught TypeError: Cannot read property 'style' of undefined

jquery - 删除数据表表(jquery)中的所有行后,如何删除 css 中的叠加层?