質問は、前の質問への回答と重複しているようです。jqGridの現在のバージョンのバグであることを確認した、元の質問に対する回答を書きました。"groupOp":"OR"
回避策として、空でないパーツと両方rules
を含むリクエストを変更groups
し、rules
パーツがの中に新しい追加グループとして挿入されるようにすることを提案しましたgroups
。
投稿した例では、最初にjQuery.parseJSONを使用して、投稿したJSON文字列postData.filters
をオブジェクトフォームに変換できます。
{
groupOp: "OR",
rules: [
{field: "Total_case", op: "eq", data: "29"}
],
groups: [
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "2"},
{field: "percent", op: "eq", data: "100"}
],
groups: []
}
]
}
groupOp
次に、それが「OR」であり、両方rules
がgroups
空でない配列であるかどうかをテストできます。rules
この場合、パーツを。の内側に移動できgroups
ます。言い換えれば、それを次のオブジェクトに変換することができます
{
groupOp: "OR",
rules: [],
groups: [
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "2"},
{field: "percent", op: "eq", data: "100"}
],
groups: []
}
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "29"}
],
groups: []
}
]
}
最後JSON.stringify
に、オブジェクトをJSON文字列に変換し直して、結果をに割り当てることができますpostData.filters
。
更新:フィルタリング/検索リクエストの処理中にjqGridを内部的に実行する変更を説明するプルリクエストを投稿しました。
デモでは修正が使用されており、すべてが正しく機能しているようです。