我们在最新版本的jqGrid中使用高级搜索,我们的搜索对话框配置为始终在网格上方的页面上可见。我们的数据列表的结构是动态的。因此,当我们要显示列表时,我们首先进行ajax调用以获取网格的列列表。然后,我们构建网格的数据模型并请求数据。
目前,在获取列的请求中,我们返回列的数据类型。如果数据是日期,我们会在搜索表单中显示日期选择器。但是,我们的一些客户 HATE 必须使用< => =作为日期范围。他们希望能够选择日期列,然后使用两个并排的日期选择器设置开始和结束日期。我一直在推他们一段时间,因为他们有能力进行日期范围搜索,但抱怨并没有停止。 (使用结束日期添加第二个过滤器的点击次数更多)
当我在日期列上配置搜索时,有什么方法可以修改jqGrid给我一个日期范围控件吗?我真的不想设置外部搜索对话用户界面只是为了处理这些投诉,但产品管理正在努力推动网格的“正常”日期范围。
答案 0 :(得分:1)
您可以创建自己的自定义搜索对话框。请参阅我几天前问过的question。
使用setGridParam
更改postData
数组,并在filters
JSON对象中包含额外的值,这些值将被转移到您可以剖析它的服务器端。在您的情况下,您可以在Start
的{{1}}项内传递数据范围End
和filter
。然后像这样重新加载你的jqGrid
postData
上面将使用新配置保存 var $grid = $("#list');
//$grid.setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
var post_data = {searchField:'',searchString:'', searchOper:'',
filters:'{"groupOp":"OR","rules":['+
'{"field":"Date","op":"ge","data":"2012-04-23"},'+
'{"field":"Date","op":"lt","data":"2012-04-25"}' +
']}'
};
$grid.setGridParam({postData:post_data}).trigger('reloadGrid');
数组,postData
使用新的reloadGrid
数组向服务器发送请求。这也将保留分页;但是,要获取网格的旧视图(没有搜索字词),您还需要单独实现postData
按钮并在此之后触发reset
以使其生效。
现在不确定你是否解决了问题;但是,我将此解决方案提供给来自未来具有相同问题的任何人。
答案 1 :(得分:0)