Datatable客户端数据change/redraw
Datatable client-side data change/redraw
我设置了一个数据tables,它最初从服务器获取一些数据并表示它,但随后一切都留给了客户端。一些选项是:
serverSide: false,
sAjaxSource: mySource,
我的 $.fn.DataTable.version 是 1.10.2.
然后我需要在客户端更改 table 下的 aaData,因为执行了一些数据处理。我需要更新 DT 以显示客户端更改的临时数据,而无需向服务器发送另一个请求(原因有两个:防止无用的流量以及因为该数据正在被更改)。
我正在寻找一种方法来编辑底层 DT 数据 bean 来编辑它,然后再次调用
myTable.draw();
在我的 table 上,我获得了实时刷新,而没有向服务器发送另一个请求。
问题是,我可以访问DT数据数组,我可以编辑它吗?
如果可以的话是怎么做到的?
编辑:我需要向 table 提供完整的 bean 数组,因为它最初是从服务器获取的,格式相同。所以个人 row/cell add/edit 和客户端构建函数在我的例子中不是 suitable ,除非我手动循环所有对象。
SOLUTION
使用下面的代码:
// Retrieve data
var data = table.ajax.json();
// Modify data
$.each(data.data, function(){
this[0] = 'John Smith';
});
// Clear table
table.clear();
// Add updated data
table.rows.add(data.data);
// Redraw table
table.draw();
DEMO
有关代码和演示,请参阅 this jsFiddle。
我设置了一个数据tables,它最初从服务器获取一些数据并表示它,但随后一切都留给了客户端。一些选项是:
serverSide: false,
sAjaxSource: mySource,
我的 $.fn.DataTable.version 是 1.10.2.
然后我需要在客户端更改 table 下的 aaData,因为执行了一些数据处理。我需要更新 DT 以显示客户端更改的临时数据,而无需向服务器发送另一个请求(原因有两个:防止无用的流量以及因为该数据正在被更改)。 我正在寻找一种方法来编辑底层 DT 数据 bean 来编辑它,然后再次调用
myTable.draw();
在我的 table 上,我获得了实时刷新,而没有向服务器发送另一个请求。
问题是,我可以访问DT数据数组,我可以编辑它吗?
如果可以的话是怎么做到的?
编辑:我需要向 table 提供完整的 bean 数组,因为它最初是从服务器获取的,格式相同。所以个人 row/cell add/edit 和客户端构建函数在我的例子中不是 suitable ,除非我手动循环所有对象。
SOLUTION
使用下面的代码:
// Retrieve data
var data = table.ajax.json();
// Modify data
$.each(data.data, function(){
this[0] = 'John Smith';
});
// Clear table
table.clear();
// Add updated data
table.rows.add(data.data);
// Redraw table
table.draw();
DEMO
有关代码和演示,请参阅 this jsFiddle。