1

何時間も何日も探した後でも、私の問題に対する満足のいく解決策を見つけることができませんでした。

私がやりたいのは、jqgrid (現在 free-jqgrid 4.9.0 を使用) のローカル検索/フィルター オプションをプログラムで使用することだけです。

たとえば、ローカルの「multipleSearch」のようなことをしたい-サーバーからデータをリロードする必要はありません。

これまでに見つけて試したのは、次のコードです。

var filters = { "groupOp": "AND", "rules": [{ "field": "my_field", "op": "eq", "data": "1234" }] };

//To filter:
jqGridFilter(filters , $('#my_grid'));

しかし、「Uncaught ReferenceError: jqGridFilter is not defined」というエラーしか表示されないため、これは古いバージョンの jqgrid にのみ適用されるようです。

TL;DR:プログラムで (できれば) free-jqgrid 4.9.0 を使用してローカルの "multipleSearch" を実行したいだけです。

助けてくれてありがとう!

アップデート:

オレグがコメントで述べた方法を試した後postData、私の主な問題は、ルールが 1 つしかない「groupOp」を使用したことでした。

postData = {
  filters : {"groupOp":"AND","rules":[{"field":"name","op":"cn","data":"anne"}]},
  search : true
}

「groupOp」オプションを省略すると、数回機能しました。私のコードは次のようになりました:

$("#grid").jqGrid("setGridParam", { 
    postData : {
        filters     :   {"rules":[{"field":"name","op":"cn","data":"anne"}]},
        search      :   true
        }
    }).trigger("reloadGrid");

数回リロードして別のフィルターを試した後、元のコードは何らかの奇妙な理由で機能しなくなりました。何が悪いのかわかりません - それは私か、または free-jqgrid のいくつかの奇妙なバグです。

4

1 に答える 1

3

データのフィルタリングを適用するには、次のことを行う必要があります

$("#grid").jqGrid("setGridParam", { 
    postData: {
        filters: JSON.stringify({
            groupOp: "AND",
            rules: [
                { field: "name", op: "cn", data: "anne" }
            ]
        })
    },
    search: true
}).trigger("reloadGrid", { page: 1 });

Where"name"は、colModelフィルターを設定する列の名前です。

于 2015-07-21T12:46:51.317 に答える