diff --git a/docs/table/index.md b/docs/table/index.md
index 13adfece..65b32793 100644
--- a/docs/table/index.md
+++ b/docs/table/index.md
@@ -29,6 +29,7 @@ toc: true
| [table.reloadData(id, options, deep)](#table.reloadData) 2.7+ | 表格数据重载。 |
| [table.renderData(id)](#table.renderData) 2.8.5+ | 重新渲染数据。 |
| [table.updateRow(id, opts)](#table.updateRow) 2.9.4+ | 更新指定行数据。 |
+| [table.updateTotalRow(id, totalRowData)](#table.updateTotalRow) 2.9.4+ | 更新合计行。 |
| [table.checkStatus(id)](#table.checkStatus) | 获取选中行相关数据。 |
| [table.setRowChecked(id, opts)](#table.setRowChecked) 2.8+ | 设置行选中状态。 |
| [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;
+ }
});
```
diff --git a/src/modules/table.js b/src/modules/table.js
index fdeaa123..379a428c 100644
--- a/src/modules/table.js
+++ b/src/modules/table.js
@@ -1914,7 +1914,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
* @typedef updateRowOptions
* @prop {number} index - 行索引
* @prop {Object.} 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){