Datatables fnUpdate 在由于分页而看不见的行上?
Datatables fnUpdate on a row that is out of view due to pagination?
以下函数在我的数据表当前页面上可见的行上运行良好。我如何让它在当前被分页隐藏的行上工作?
var table = $('.datatable').dataTable();
var row = table.fnGetPosition($('#'+data.id).closest('tr')[0]);
var value = table.fnGetData(table.fnGetPosition($('#'+data.id).closest('tr')[0]),11);
if (value == '') {
value = cid;
} else {
value = value+','+cid;
}
table.fnUpdate(value, row, 11);
您可以使用 fnGetNodes() 实现此目的,这里是对文档的引用 https://datatables.net/api
这是 fiddle 上的一个例子 http://jsfiddle.net/mxfvLjnb/
我把代码放在这里只是为了更好地参考
var oTable = $('#example').dataTable({"sPaginationType": "full_numbers"});
var rows = oTable.fnGetNodes();
for(var i=0;i<rows.length;i++)
{
oTable.fnUpdate('X', rows[i], 4);
}
希望对你有帮助
因为 DataTables 1.10+ 可能不支持 fnGetNodes()
作为 mentioned on the API landing page itself, instead now you can use rows().nodes()
要更新特定行,您可以使用 row-selector
然后
要更新该特定行的特定单元格,您可以使用 cell().data()
综合上述修改,您的示例代码更改为以下内容:
//Notice the 'd' replaced by 'D' in dataTable() for Datatables v1.10+
var table = $('#example').DataTable();
var row = table.row('#' + data.id).node();
var value = table.cell(row, 11).data();
if (value == '') {
value = cid;
}
else {
value += ',' + cid;
}
table.cell(row, 11).data(value).draw();
以下函数在我的数据表当前页面上可见的行上运行良好。我如何让它在当前被分页隐藏的行上工作?
var table = $('.datatable').dataTable();
var row = table.fnGetPosition($('#'+data.id).closest('tr')[0]);
var value = table.fnGetData(table.fnGetPosition($('#'+data.id).closest('tr')[0]),11);
if (value == '') {
value = cid;
} else {
value = value+','+cid;
}
table.fnUpdate(value, row, 11);
您可以使用 fnGetNodes() 实现此目的,这里是对文档的引用 https://datatables.net/api
这是 fiddle 上的一个例子 http://jsfiddle.net/mxfvLjnb/
我把代码放在这里只是为了更好地参考
var oTable = $('#example').dataTable({"sPaginationType": "full_numbers"});
var rows = oTable.fnGetNodes();
for(var i=0;i<rows.length;i++)
{
oTable.fnUpdate('X', rows[i], 4);
}
希望对你有帮助
因为 DataTables 1.10+ 可能不支持 fnGetNodes()
作为 mentioned on the API landing page itself, instead now you can use rows().nodes()
要更新特定行,您可以使用 row-selector
然后
要更新该特定行的特定单元格,您可以使用 cell().data()
综合上述修改,您的示例代码更改为以下内容:
//Notice the 'd' replaced by 'D' in dataTable() for Datatables v1.10+
var table = $('#example').DataTable();
var row = table.row('#' + data.id).node();
var value = table.cell(row, 11).data();
if (value == '') {
value = cid;
}
else {
value += ',' + cid;
}
table.cell(row, 11).data(value).draw();