jQuery + jqgrid postData覆盖默认值

Gre*_*Day 2 jquery jqgrid

所以我有网格,我设置了一些默认值,如此...

defaults: {
    datatype: "json",
    mtype: "POST",
    autowidth: true,
    height: '100%',
    viewrecords: true,
    loadonce: false,
    rowNum: 100,
    rowList: [15,30,50,100,200,500]
},
Run Code Online (Sandbox Code Playgroud)

然后根据正在加载的页面我设置colModel然后最后几个其他的东西,如下所示:

var fields = $(":input").serialize(); //into post data..

jQuery('#'+$Global.trxGrid.gridId)
    .setGridParam({
        url : page,
        postData : fields,
        loadError: function(xhr,st,err) {
            $('#searchErrorText').text('Please try again later.');
            $('#searchErrorDialog').dialog('open');
        },
        ajaxGridOptions: {
            timeout: 150000
        }
     }
 );
Run Code Online (Sandbox Code Playgroud)

但是当我检查postData时,prmNames不在那里(_search = false&nd = 1324619663709&rows = 100&page = 1&sidx =&sord = asc)等.如果我在上面的方法中注释掉postData,那么它们就出现了.postData是否覆盖了所有内容?如果是这样的话,我想我需要追加反对覆盖,但我找不到任何干净的方法来做到这一点.有人可以建议解决方案,还是我做错了什么?

Man*_*ijn 5

你必须为你的选项添加一个额外的选项,请serializeGridData参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events

所以你应该做这样的事情:

$('#grid').jqGrid({
    url: 'url',
    ....
    serializeGridData: function(postData) {
      var newPostData = $.extend(postData, {
        extraParam: 'EXTRA-PARAM-VALUE'
      });

      // newPostData now is (_search=false&nd=1324619663709&rows=100&page=1&sidx=&sord=asc&extraParam=EXTRA-PARAM-VALUE)
      return $.param(newPostData);
    }
});
Run Code Online (Sandbox Code Playgroud)