【问题标题】:jQuery + jqgrid postData overriding default valuesjQuery + jqgrid postData 覆盖默认值
【发布时间】:2011-12-23 06:09:50
【问题描述】:

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

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

然后根据正在加载的页面,我设置了 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
        }
     }
 );

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

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    您必须在选项中添加一个名为 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);
        }
    });
    

    【讨论】:

    • +1 来自我。我同意你的建议。一些小说明:我发现最好使用$.extend({}, postData, {extraParam: 'EXTRA-PARAM-VALUE'}); 而不是$.extend(postData, {extraParam: 'EXTRA-PARAM-VALUE'});,因为$.extend 修改了第一个参数。使用$.extend({}, ... 保持postData 参数不变。另一句话:return $.param(newPostData);return newPostData; 做同样的事情,因为$.ajax 会自动调用$.param。所以serializeGridData 可以像serializeGridData: function (postData) { return $.extend(postData, {extraParam: 'EXTRA-PARAM-VALUE'}); }
    猜你喜欢
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多