done: function (res, curr, count) {
// 0 为张三的固定索引,数据较多时需要遍历res,这里只做演示使用
let LAY_TABLE_INDEX = 0;
let td = $(".layui-table").find("[data-index='"+LAY_TABLE_INDEX+"']").find("[data-field='age']");
td.html("22");
td.css("color","red");
再导出数据,发现是原来的数据,新数据并没有导出,如图:
table.exportFile 导出数据是 渲染表格后的原数据,如果数据做过修改,table.exportFile 无法导出新数据。
处理问题: 我们前面定义了这样一行代码就有用啦,处理表格渲染后,将 更改后的数据渲染到 exportDataTable 表格中备份,导出的表格数据就是exportDataTable的数据,这样就能实现导出修改过的数据。
<div class="layui-hide"><table id="exportDataTable" class="dataTable"></table></div>
在渲染表格后 done 函数,需要做如下处理:
let personDataExport = []; // 定义变量,需要导出的表格
done: function (res, curr, count) {
let LAY_TABLE_INDEX = 0;
let td = $(".layui-table").find("[data-index='"+LAY_TABLE_INDEX+"']").find("[data-field='age']");
td.html("22");
td.css("color","red");
$.each(res.data, function (index, item) {
if(index == LAY_TABLE_INDEX){
item.age = 22;
personDataExport.push(item);
}else{
personDataExport.push((item));
// 遍历数据,将新数据添加到 personDataExport ,渲染需要导出的表格
init_export_table(personDataExport);
// 定义 init_export_table 方法
function init_export_table(data) {
// personDataTable 变量需要指向导出的表格
personDataTable = table.render({
elem: '#exportDataTable', //表格ID
data: data,
size: 'sm',
id: 'exportDataTable',
even: true,//隔行背景
toolbar: "#toolbarTpl",
defaultToolbar: ['filter'],
contentType: 'application/json',
cols: [[
{filed: 'ID', title: 'ID', type: 'checkbox', width: '50', align: 'center'},
{field: 'name', title: '姓名', width: '240', align: 'center'},
{field: 'age', title: '年龄', width: '240', align: 'center'},
{field: 'hobby', title: '喜好', width: '240', align: 'center'}
height: 'full-110',
此时,再导出数据,就是更改后的数据。
总的来说,就是将修改后的数据备份,重新渲染一个新的表格,table.exportFile参数ID,指向这个表格。