mirror of https://github.com/layui/layui
perf(table): 改进 updateRow 渲染性能
parent
bc61f9ff08
commit
d361a327ea
|
@ -29,6 +29,7 @@ toc: true
|
|||
| [table.reloadData(id, options, deep)](#table.reloadData) <sup>2.7+</sup> | 表格数据重载。 |
|
||||
| [table.renderData(id)](#table.renderData) <sup>2.8.5+</sup> | 重新渲染数据。 |
|
||||
| [table.updateRow(id, opts)](#table.updateRow) <sup>2.9.4+</sup> | 更新指定行数据。 |
|
||||
| [table.updateTotalRow(id, totalRowData)](#table.updateTotalRow) <sup>2.9.4+</sup> | 更新合计行。 |
|
||||
| [table.checkStatus(id)](#table.checkStatus) | 获取选中行相关数据。 |
|
||||
| [table.setRowChecked(id, opts)](#table.setRowChecked) <sup>2.8+</sup> | 设置行选中状态。 |
|
||||
| [table.getData(id)](#table.getData) | 获取当前页所有行表格数据。 |
|
||||
|
@ -356,7 +357,7 @@ table.updateTotalRow('test', function(field, columnValues, tableData){
|
|||
| --- | --- | --- | --- |
|
||||
| index | 行下标 | number | - |
|
||||
| row | 行数据 | object | - |
|
||||
| related | 是否更新其他包含自定义模板且可能有所关联的列视图 | boolean | - |
|
||||
| related | 是否更新其他包含自定义模板且可能有所关联的列视图 | boolean/function | - |
|
||||
|
||||
该方法用于更新指定行数据。
|
||||
|
||||
|
@ -375,6 +376,10 @@ table.updateRow('test', {
|
|||
id: 1,
|
||||
username: 'name'
|
||||
}
|
||||
// 是否更新关联的列视图
|
||||
related: function(field, index){
|
||||
return ['score', '5'].indexOf(field) !== -1;
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
|
|
|
@ -1914,7 +1914,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
|||
* @typedef updateRowOptions
|
||||
* @prop {number} index - 行索引
|
||||
* @prop {Object.<string, any>} row - 行数据
|
||||
* @prop {boolean} [related] - 更新其他包含自定义模板且可能有所关联的列视图
|
||||
* @prop {boolean | ((field, index) => boolean)} [related] - 更新其他包含自定义模板且可能有所关联的列视图
|
||||
*/
|
||||
/**
|
||||
* 更新指定行
|
||||
|
@ -1953,9 +1953,10 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
|||
}, data)
|
||||
}));
|
||||
td.data("content", value);
|
||||
that.renderFormByElem(cell);
|
||||
}
|
||||
// 更新其他包含自定义模板且可能有所关联的列视图
|
||||
else if (related && (item3.templet || item3.toolbar)) {
|
||||
else if ((typeof related === 'function' ? related(String(item3.field || i), i) : related) && (item3.templet || item3.toolbar)) {
|
||||
var thisTd = tr.children('td[data-field="' + (item3.field || i) + '"]');
|
||||
var content = data[item3.field];
|
||||
var thisCell = thisTd.children(ELEM_CELL);
|
||||
|
@ -1968,11 +1969,10 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
|||
}, data)
|
||||
}));
|
||||
thisTd.data("content", content);
|
||||
that.renderFormByElem(thisCell);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
that.renderFormByElem(tr);
|
||||
}
|
||||
|
||||
layui.each(opts, function(i, opt){
|
||||
|
|
Loading…
Reference in New Issue