我想在加载后获取jGrid数据。
有些列有格式化程序,但我希望在格式化之前获取原始数据。
网格列为:
<sjg:gridColumn name="accountNo" formatter="linkBulider" />
<sjg:gridColumn name="amount" />
我在js下面使用:
var allRowsInGrid = $('#gridtable').jqGrid('getRowData');
for (i = 0; i < allRowsInGrid.length; i++) {
//For accountNo I get the formmated value
allRowsInGrid[i].accountNo;
//The amount is ok as it is unformated
allRowsInGrid[i].amount;
}
答案 0 :(得分:1)
根据wiki getRowData
,不会从网格中返回实际数据。
返回包含请求的
id = rowid
数据的数组。归来了 数组的类型为name:value
,其中名称是colModel
的名称 以及该行中关联列的值。它返回一个 如果无法找到rowid
,则为空数组。
- 编辑行或单元格时,请勿使用此方法。这将返回单元格内容,而不是输入的实际值 元件。强>
- 此方法的性能成为问题。不使用 这种方法在“for”和“when”的主体中。 (当打电话给这个 方法,它将计算一次行数据。)
醇>如果
rowid
是 不设置方法返回数组中网格的所有数据
使用custom formatter
选项格式化单元格内容后,您需要一个选项来取消格式化数据。
问题是:如果我们使用自定义
formatter
功能,该怎么办? 如果我们使用编辑或方法,想要恢复原始值getRowData
和getCell
?答案是:您可以使用自己的自定义
中使用unformatter
功能 那。此功能可在colModel
。
此时,您可以检查sjg:gridColumn
是否可以设置属性以定义unformat
功能。不幸的是,根据TLD,你不能这样做。
但是,您可以在加载后修改网格。
$(document).ready(function(){
$("#gridtable").jqGrid('setColProp', 'accountNo',{
unformat: unformatFunc
}).trigger("reloadGrid");
});