我不完全明白你真正想要什么。默认情况下,过滤器将作为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
方法。