jqgrid-使用附加postData参数序列化GridData

jqgrid-使用附加postData参数序列化GridData,jqgrid,Jqgrid,我试图使用serializeGridData将我的postdata转换为JSON。这是我的密码 jQuery(function() { $('#grid').jqGrid({ ........ ........ postData: { param1: function() { return $("param1").val(); }, param2: function() { return $("param2").va

我试图使用serializeGridData将我的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中进行了调试,这就是数据是如何被序列化到GridData方法的。所以最终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()

JSON.stringify
遇到一个函数时,它。尝试在不使用函数的情况下设置数据,如下所示:

postData: {
    param1: $("param1").val(),
    // etc.
}

我认为您应该在
serializeGridData
回调中枚举
postData
的所有属性,并在其中使用
$.isFunction
来验证某个属性是否是方法。对于方法,您应该调用该方法并将结果保存在同名的属性中。查看的代码中的
serializeRowData
的实现。

您是否尝试过的代码?@Oleg:我刚刚尝试过,工作非常完美。谢谢你,那很有效。非常感谢,你帮了我大忙。当你评论我是否尝试过这个答案时,我只是在做一些改变。再次感谢你!!