我有jqrid,通过JSON加载了多个列和行。目前,单击UPDATE按钮,我将所有网格数据作为JSON发送到服务器,如下所示。
$("#updateTradeDetail").click(function () {
var griddata = $("#tradeDetailGrid").jqGrid('getGridParam', 'data');
$.ajax({
url : "${pageContext.request.contextPath}" + "/XXxxxx/tools/updateTrades",
type : "POST",
data: JSON.stringify(griddata),
dataType: 'html',
contentType: "application/json; charset=utf-8",
success : function(msg) {
alert("Response on update " + msg);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert("Error" + thrownError);
}
});
});
如何仅将具有多行的特定列值发送到服务器?
答案 0 :(得分:0)
如果您需要从仅一列发送数据,那么getCol
将是getGridParam("data")
的一个很好的替代方案。 getCol
的第二个参数定义了返回数据的格式。在使用getCol
时应该小心,因为它使用unformatter从网格单元格中获取数据(来自<td>
元素),因此getCol
和getGridParam("data")
返回的数据可能会有所不同。
还有一句话。如果您在网格中没有包含rowid的列(例如getGridParam("data")
中具有key: true
属性的列),则colModel
的使用不会获取所有数据。因此,要获取完整数据,需要获得getGridParam("data")
和getGridParam("_index")
。请参阅the answer,this one,this one和其他许多内容。
执行所需操作的最安全,最简单的方法可能就是对getGridParam("data")
返回的数组进行复制,并通过删除不需要的属性来修改它。我想强调制作副本的重要性,因为getGridParam("data")
将引用返回到具有jqGrid使用的内部数据的数组。因此,如果您要对其进行一些更改,那么更改将在下一次刷新时应用于网格上(在排序,分页等方面)。