jqGrid搜索中的日期范围

时间:2012-04-03 19:08:39

标签: jqgrid

我们在最新版本的jqGrid中使用高级搜索,我们的搜索对话框配置为始终在网格上方的页面上可见。我们的数据列表的结构是动态的。因此,当我们要显示列表时,我们首先进行ajax调用以获取网格的列列表。然后,我们构建网格的数据模型并请求数据。

目前,在获取列的请求中,我们返回列的数据类型。如果数据是日期,我们会在搜索表单中显示日期选择器。但是,我们的一些客户 HATE 必须使用< => =作为日期范围。他们希望能够选择日期列,然后使用两个并排的日期选择器设置开始和结束日期。我一直在推他们一段时间,因为他们有能力进行日期范围搜索,但抱怨并没有停止。 (使用结束日期添加第二个过滤器的点击次数更多)

当我在日期列上配置搜索时,有什么方法可以修改jqGrid给我一个日期范围控件吗?我真的不想设置外部搜索对话用户界面只是为了处理这些投诉,但产品管理正在努力推动网格的“正常”日期范围。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以创建自己的自定义搜索对话框。请参阅我几天前问过的question

使用setGridParam更改postData数组,并在filters JSON对象中包含额外的值,这些值将被转移到您可以剖析它的服务器端。在您的情况下,您可以在Start的{​​{1}}项内传递数据范围Endfilter。然后像这样重新加载你的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)

据我所知,没有办法做到这一点,而是自己写。

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_searching

Filter jqGrid Data by Date Range?