1

我想在加载后获取 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;
}
4

1 回答 1

1

根据wiki getRowData不会从网格返回实际数据。

返回一个包含请求数据的数组id = rowid。返回的数组类型为name:value,其中名称是colModel 来自该行中关联列的名称和值。如果rowid找不到,则返回一个空数组。

  1. 编辑行或单元格时不要使用此方法。这将返回单元格内容,而不是输入元素的实际值。
  2. 这种方法的性能成为一个问题。不要在“for”和“when”的正文中使用此方法。(调用该方法时,会计算一次行数据。)

如果rowid未设置该方法,则返回数组中网格中的所有数据

使用自定义formatter选项格式化单元格内容后,您需要一个选项来取消格式化数据。

问题是:如果我们使用自定义formatter函数并希望在使用编辑或方法时恢复原始值 getRowData,该getCell怎么办?

答案是:您可以使用自己的自定义unformatter函数来做到这一点。此功能可用于colModel.

此时您可能会检查是否sjg:gridColumn可以设置属性来定义unformat函数。不幸的是,根据 TLD,您不能这样做。

但是,您可以在加载后修改网格。

$(document).ready(function(){
 $("#gridtable").jqGrid('setColProp', 'accountNo',{
    unformat: unformatFunc
  }).trigger("reloadGrid");
}); 
于 2016-02-07T12:14:46.397 回答