如何从jqgrid只发送特定的列值?

时间:2014-06-27 04:56:42

标签: jqgrid

我有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);
            }
        });
    });

如何仅将具有多行的特定列值发送到服务器?

1 个答案:

答案 0 :(得分:0)

如果您需要从仅一列发送数据,那么getCol将是getGridParam("data")的一个很好的替代方案。 getCol的第二个参数定义了返回数据的格式。在使用getCol时应该小心,因为它使用unformatter从网格单元格中获取数据(来自<td>元素),因此getColgetGridParam("data")返回的数据可能会有所不同。

还有一句话。如果您在网格中没有包含rowid的列(例如getGridParam("data")中具有key: true属性的列),则colModel的使用不会获取所有数据。因此,要获取完整数据,需要获得getGridParam("data")getGridParam("_index")。请参阅the answerthis onethis one和其他许多内容。

执行所需操作的最安全,最简单的方法可能就是对getGridParam("data")返回的数组进行复制,并通过删除不需要的属性来修改它。我想强调制作副本的重要性,因为getGridParam("data")引用返回到具有jqGrid使用的内部数据的数组。因此,如果您要对其进行一些更改,那么更改将在下一次刷新时应用于网格上(在排序,分页等方面)。