JQGRID return serializeCellData 中行的所有单元格值

JQGRID return all cell values from row in serializeCellData

我正在寻找一种方法,以便在用户每次编辑单元格时 return post 元素中的所有行数据。

目前我有

serializeCellData: function( postdata ) 
{
    postdata[site.csrf.keys.name]  = site.csrf.name;
    postdata[site.csrf.keys.value] = site.csrf.value;
    postdata['po_id'] = id_po;

    postdata['product_code'] = $("#order_details_grid").jqGrid('getCell',irowsel,'product_code');
    postdata['description'] = $("#order_details_grid").jqGrid('getCell',irowsel,'description');
    postdata['account_code'] = $("#order_details_grid").jqGrid('getCell',irowsel,'account_code');
    postdata['qty'] = $("#order_details_grid").jqGrid('getCell',irowsel,'qty');
    postdata['price_each'] = $("#order_details_grid").jqGrid('getCell',irowsel,'price_each');
    postdata['gst_each'] = $("#order_details_grid").jqGrid('getCell',irowsel,'gst_each');
    postdata['price_total'] = $("#order_details_grid").jqGrid('getCell',irowsel,'price_total');
    postdata['gst_total'] = $("#order_details_grid").jqGrid('getCell',irowsel,'gst_total');
    return postdata; 
},

而且它大部分都有效。然而,我刚刚编辑的一个单元格被 returned 为 html。

我可以更改控制器以接收 post 名称和值,这样它就可以成为更通用的代码。但是在这个阶段我只想传递每个值。

该代码不会被大量使用,因此此时性能不是一个重要的考虑因素。

有没有一种简单的方法可以在编辑时获取单元格的值而不是 html?

我建议您使用 beforeSubmitCell 而不是 serializeCellData 来扩展信息,这些信息将被发送到服务器。 beforeSubmitCell 的第一个参数是 rowid,return 值应该是具有附加属性的对象。例如,

beforeSubmitCell: function (rowid) {
    return $(this).jqGrid("getRowData", rowid);
}

此外,我建议您使用 free jqGrid。从版本 4.14.0 开始,方法 getCellgetRowData 可以从编辑单元格中成功读取数据。