私はあなたが本当に欲しいものを完全には理解していません。デフォルトでは、フィルターはfilters
パラメーターとしてサーバーに送信されます。それでも、たとえばonSearchコールバックを使用して、検索フィルターにアクセスできます。使用できます
var filters = $(this).jqGrid("getGridParam", "postData").filters;
filters
のプロパティを取得しますpostData
。
更新:クライアント側で作成されたSQLステートメントのフラグメントを信頼することは決してありません。サーバーコードでクライアントから送信されたSQLフラグメントを使用する場合は、自動的にSQLインジェクションを許可します。アプリケーションでセキュリティが何らかの役割を果たす場合は、jqGridによって作成されたSQLステートメントを使用しないでください。
toSQLString
それでも、質問が純粋な理論的性質を持っている場合は、検索フィルターのメソッドを使用して、検索ダイアログにSQLステートメントを表示できます。対応するコードは次のようになります
grid.jqGrid('navGrid', '#pager', {edit: false, add: false, del: false}, {}, {}, {}, {
multipleSearch: true,
multipleGroup: true,
showQuery: true,
recreateFilter: true,
onSearch: function () {
var $filter = $("#" + $.jgrid.jqID("fbox_" + this.id)),
sql = $filter.jqFilter('toSQLString');
alert(sql);
}
});
対応するデモはここにあります。ちなみに、メソッドshowQuery: true
を使用できるようにするために使用する必要はありませんtoSQLString
。