2

jqGridExport を使用してデータをエクスポートした後、jqGridImport を使用してインポートします。最初の問題は、ボトムバーのオプションが戻ってこないことだったので、後でそのコードを追加しました。したがって、コードは次のようになります。

$("#list").jqGridImport({imptype: 'jsonstring', impstring: gridSettings})
.jqGrid('navGrid','#pager', { edit: false, add: false, del: false, search: true, refresh:true },
{},{},{},{closeOnEscape: true, multipleSearch: true, closeAfterSearch: true},{});

gridSettings 文字列の重要な部分は次のとおりです。
"postData":{"_search":true,
"nd":1301031279941,
"rows":20,
"page":1,
"sidx":"a.ID",
"sord":"asc",
"filters":{"groupOp":"AND","rules": [{"field":"fname","op":"bw","data":"T"}]}
}

検索以外はすべて問題なく表示されます。上記の postData からの 1 行の検索は正しいですが、2 番目の検索行があります。これは、デフォルトの検索行としか言いようがありません。入って複数の検索ボックスからその行を削除すると、すべてが正常になります。

だから私の質問は最初です.jqGridImportを使用して復元すると、なぜmultipleSearchが元に戻らないのですか?
次に、2 番目の検索行をプログラムで削除する方法はありますか?

4

1 に答える 1

2

ナビゲーターを使用した下部バーの動作は、グリッドの一部として実装されていないため、正しいです。したがって、実際に追加で設定する必要があります。設定のエクスポートとインポートを独自に作成できます。

検索ダイアログに追加される追加の最後の行の状況は、実際には小さな問題であり、次のコードで修正できます。

var grid = $("#list");
...

grid.searchGrid(prmSearch);
if (typeof(grid[0].p.postData.filters) === "string" &&
    grid[0].p.postData.filters.length>0) {

    $("#fbox_"+grid[0].id).searchFilter().del();
}
$("#fbox_"+grid[0].id).searchFilter().close();

対応するデモはこちらでご覧いただけます。これは、私の別の古い回答からのデモの小さな変更です。

ちなみに、jqGrid の次のバージョンで使用される新しいフィルターには問題はありません (こちらのデモを参照してください)。

于 2011-03-25T09:07:15.390 に答える