struts 2使用jqGrid在格式化之前获取行数据

时间:2016-02-07 08:40:07

标签: jquery struts2 jqgrid struts2-jquery-plugin struts2-jquery-grid

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

1 个答案:

答案 0 :(得分:1)

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

  

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

     
      
  1. 编辑行或单元格时,请勿使用此方法。这将返回单元格内容,而不是输入的实际值   元件。
  2.   
  3. 此方法的性能成为问题。不使用   这种方法在“for”和“when”的主体中。 (当打电话给这个   方法,它将计算一次行数据。)
  4.         

    如果rowid是   不设置方法返回数组中网格的所有数据

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

  

问题是:如果我们使用自定义formatter功能,该怎么办?   如果我们使用编辑或方法,想要恢复原始值   getRowDatagetCell

     

答案是:您可以使用自己的自定义unformatter功能   那。此功能可在colModel

中使用

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

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

$(document).ready(function(){
 $("#gridtable").jqGrid('setColProp', 'accountNo',{
    unformat: unformatFunc
  }).trigger("reloadGrid");
});