0

我正在尝试使用 serializeGridData 使用 Oleg 的这个答案将我的 postdata转换JSON。这是我的代码。

jQuery(function() {
   $('#grid').jqGrid({
       ........
       ........
       postData: {
        param1: function() { return $("param1").val(); },
        param2: function() { return $("param2").val(); },
        searchText: function() { return $("searchText").val(); },
        totalRecords: function() { return msgGrid.getGridParam("records"); }
    },
    serializeGridData: function (postData) {
           return JSON.stringify(postData);
    },
    ajaxGridOptions : {
        contentType: 'application/json; charset=utf-8'
    }
    });
});

进入 serializeGridData 的 postData 不会将 postData {} 中定义的自定义参数替换为实际值。我已经在 firebug 中进行了调试,这就是数据进入 serializeGridData 方法的方式。所以最终 JSON.stringify 不会转换请求数据中的 param1、param2.. 值。如何修复它以发送自定义参数的实际值?提前致谢..

_search     false
nd      1349195468864
page        1
rows        25
sidx        "sortcol_name"
sord        "desc"
param1      function()        // expect to have actual param1 value
param2      function()
searchText          function()
totalRecords    function()
4

2 回答 2

0

JSON.stringify遇到一个函数时,它会将其审查为 null。尝试设置没有函数的数据,如下所示:

postData: {
    param1: $("param1").val(),
    // etc.
}
于 2012-10-02T17:46:52.500 回答
0

我认为你应该枚举回调postData内部的所有属性并使用它内部来验证某些属性是否是方法。如果是方法,您应该调用该方法并将结果保存在具有相同名称的属性中。从答案或答案的代码中查看实现。serializeGridData$.isFunctionserializeRowData

于 2012-10-02T17:55:19.740 回答