【问题标题】:struts 2 use jqGrid to get row data before formatstruts 2 使用 jqGrid 获取格式化前的行数据
【发布时间】:2016-02-07 08:40:07
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    问题是:如果我们使用自定义的formatter 函数和 如果我们使用编辑或方法,希望恢复原始值 getRowDatagetCell?

    答案是:可以使用自己自定义的unformatter函数来做 那。这个函数可以在colModel中使用。

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

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

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

    【讨论】:

    • unformat 是我一直在寻找的,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    相关资源
    最近更新 更多