6

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

我的网格定义:

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

在帖子请求中:我看到name, rateparams 与其他标准 jqGrid 参数(如sortname, sidx,rows等)一起使用...

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

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

});

现在 jqGrid 发送name, rate, msgIdsparams

现在,如果我将 URL 更改回 rates.html,例如,单击刷新图标时,jqGrid 会发送前一个msgIds参数以及前一个值。当 URL 更改时,我不想在新请求中发送以前的请求参数。有没有办法我们可以做到这一点?

4

3 回答 3

5

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

var myPostData = $('#grid').jqGrid("getGridParam", "postData");

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

于 2012-10-17T15:24:58.947 回答
1

我在保留以前请求的 postdata 参数时遇到了同样的问题。

我通过先清除 postData 然后用新参数设置 postData 来修复它。

清除 postData => $('#grid1').setGridParam({ postData: ""});

使用新参数设置 postData =>

var formValues = {searchVal: "abc", country: "US"} $('#grid1').setGridParam({ postData: formValues});

于 2015-08-07T04:53:39.090 回答
0

我能够通过这种方式解决它:

function triggerRefresh(wsParams) {
    // determine ws path
    var myGrid=$('#myjsTreeView');
    var urlData = "/myWebService.asmx/myWebServiceMethod";
    // note: you need to pass url, datatype, postdata
    var gridParam = { url: urlData, datatype: "json", postData: wsParams, page: 1 };                        
    myGrid.jqGrid('setGridParam', gridParam).trigger("reloadGrid");
} // function

不同之处在于我在我的请求中指定datatype了 , theurlpagetotal ——这使它起作用了!

我这样称呼这个函数:

var myparams = $.toJSON({ para1: someValue, para2: someOtherValue });
triggerRefresh(myparams);

当我需要更新数据时。例如,省略数据类型将导致刷新以静默方式失败。

于 2013-07-15T13:45:35.427 回答