【发布时间】:2016-12-20 10:15:03
【问题描述】:
【问题讨论】:
-
解决问题的方法有多种,但最佳选择取决于其他细节。你用的是哪个
datatype?您需要编辑数据吗?您还需要在“全部”列中使用哪些其他功能(排序、搜索……)? -
@Oleg 数据类型为默认值。我将数组数据提供给 jqgrid 对象的数据键。不需要编辑数据。需要排序/搜索。
标签: jqgrid free-jqgrid
【问题讨论】:
datatype?您需要编辑数据吗?您还需要在“全部”列中使用哪些其他功能(排序、搜索……)?
标签: jqgrid free-jqgrid
实现您的要求的最简单方法是使用定义为函数的jsonmap 和sorttype,它返回列的计算值。此外,您还需要实现afterSetRow 回调,它会在修改行后(在setRowData 之后)修复值。
相应的实现可能类似于the demo。该演示使用total 列定义网格,它显示amount 和tax 列的总和。演示代码如下:
var calculateTotal = function (item) {
return parseFloat(item.amount) + parseFloat(item.tax);
};
$("#list").jqGrid({
...
colModel: [
...
{ name: "amount", template: "number", ... },
{ name: "tax", template: "number", ... },
{ name: "total", width: 76, template: "number", editable: false,
jsonmap: function (item) {
return calculateTotal(item);
},
sorttype: function (cellValue, item) {
return calculateTotal(item);
}},
...
],
afterSetRow: function (options) {
var item = options.inputData;
if (item.total === undefined) {
// test is required to prevent recursion
$(this).jqGrid("setRowData", options.rowid, {
total: calculateTotal(item)
});
}
}
...
});
【讨论】: