1

jqgrid を使用して Tastypie API にアクセスしています。デフォルトの Tastypie API と一致するように、sidx を「order_by」に変更しました。

Jqgrid は、何かによる順序付けであるかどうかに関係なく、order_by (以前の sidx) get パラメーターを渡します。ソートしていない場合は、空の文字列をソート基準として渡すだけです。Tastypie は、"'' という名前のフィールドはありません" と言って空の文字列にびっくりします。

私の見方では、解決するには2つのオプションがあります。

  1. 必要がない限り、jqgrid に order_by パラメータの送信を停止させる
  2. Tastypie に空の order_by 文字列を無視させる...

これら2つのことのいずれかを行う方法に関する提案はありますか?

4

1 に答える 1

1

問題を完全に理解しているかどうかはわかりません。まず、使用できるものに名前を変更sidxしますorder_by

prmNames: {sort: "order_by"}

あなたがそれを決してしない、sidxまたはorder_by送信しない場合は、使用できます

prmNames: {sort: null}

prmNames.sort動的に変更するいくつかのシナリオを実装できます。jqGridコールバックまたはイベントを使用できます。

サーバーに送信されるパラメーターのリストを制御するもう 1 つの方法は、serializeGridDataコールバックです。例えば

serializeGridData: function (postData) {
    var myPostData = $.extend({}, postData); // make a copy of the input parameter
    if (myPostData.sidx.length === 0) { // or myPostData.order_by.length
        delete myPostData.sidx;
    }
    return myPostData;
}

別の例については、回答を参照してください。

于 2012-07-07T08:26:38.637 に答える