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、、 paramsが、、、、などのrate他の標準のjqGridパラメータと一緒に実行されていることがわかります。sortnamesidxrows

外部ボタンをクリックした場合、グリッドURLを以下のように変更すると

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

});

これで、 jqGridnameは、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

違いは、リクエストで、、およびすべてを指定することです。これにより、機能しましdatatypeurlpage

私はこの関数を次のように呼び出します。

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

データの更新が必要な場合。たとえば、データ型を省略すると、更新がサイレントに失敗します。

于 2013-07-15T13:45:35.427 に答える