【问题标题】:jqgrid - serializeGridData with additional postData paramsjqgrid - 带有附加 postData 参数的 serializeGridData
【发布时间】:2012-10-02 17:20:11
【问题描述】:

我正在尝试使用来自Oleganswer 使用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 中进行了调试,这就是数据进入 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()

【问题讨论】:

  • 你试过the answer的代码吗?
  • @Oleg:我刚刚尝试过并且工作完美。谢谢你..

标签: jqgrid


【解决方案1】:

我认为您应该在serializeGridData 回调中枚举postData 的所有属性,并在其中使用$.isFunction 来验证某些属性是否是方法。如果是方法,您应该调用该方法并将结果保存在具有相同名称的属性中。从the answerthe answer的代码中看serializeRowData的实现。

【讨论】:

  • 效果很好。非常感谢,你很有帮助。当您评论我是否尝试过此答案时,我只是在进行更改。再次感谢您!
【解决方案2】:

JSON.stringify 遇到一个函数时,它是censors it to null。尝试设置不带函数的数据,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多