jqgrid - postData提交先前的请求参数和数据

var*_*ash 6 jquery jqgrid

我一直在使用postData动态设置请求参数.点击一些外部按钮,我更改了网格URL,并在postData下面设置了一些额外的参数.JqG​​rid似乎附加了所有这些参数并且它是所有后续请求的数据.有没有办法我们可以控制或避免每次发送这些参数?

我的网格定义:

jQuery(function() {
    $('#grid').jqGrid({
    url: 'rates.html',
    postData: {
        name: function() { return $("#name").val(); },
        rate: function() { return $("#rate").val(); },
                .....
        }
        ....
    });
});
Run Code Online (Sandbox Code Playgroud)

在这里,在POST请求:我看到name,ratePARAMS与其他标准的jqGrid参数等一起去sortname,sidx,rows,等...

现在,如果单击外部按钮,如果我更改网格URL如下所示

$('#changeReqBtn').click(function() {
       $('#grid').setGridParam({ url: 'changeReq.html', 
                              postData: { msgIds: msgIds } });
       $('#grid').trigger("reloadGrid");     

});
Run Code Online (Sandbox Code Playgroud)

现在jqGrid发送name,速率,msgIds参数

现在,如果我将URL更改回rates.html,例如,点击刷新图标,jqGrid将发送上一个msgIds参数以及之前的值.当URL更改时,我不想在新请求中发送先前的请求参数.有没有办法实现这个目标?

Ole*_*leg 6

如果我正确理解您的问题,您应该避免使用setGridParam并执行以下操作.您可以使用$('#grid').jqGrid("getGridParam", "postData")获取内部参数的引用postData.例如,

var myPostData = $('#grid').jqGrid("getGridParam", "postData");
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用delete myPostData.msgIds删除以前添加的方法的任何属性setGridParam.

  • @RangaNirmana:不客气!我建议您也要执行以下操作:`var p = $('#grid').jqGrid("getGridParam");`它使用所有内部参数获取*引用*到jqGrid的内部对象.您可以获取任何特定参数,如`p.postData`或`p.rowNum`,并根据需要进行修改.你不需要再使用`setGridParam`了. (2认同)