JQGrid DateTime高级过滤器

时间:2012-08-14 14:55:17

标签: jqgrid

我被困在这里 - 生产前要做的最后一件事。

来自oracle的日期采用以下格式:“8/14/2012 10:46:48 AM”

我在jqgrid上使用以下内容:

{ name: 'CreationDate', index: 'CreationDate', formatter: 'date', formatoptions:    { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }, sorttype: 'date', width: 95, align: 'right', resizable: false },

我在网格上显示以下内容:“08/14/2012 - 10:46 AM”

问题是当我尝试使用高级过滤器时,它不起作用。我的猜测是因为时间,关于如何解决这个问题的任何建议?

更新

Oleg,我复制了你发布的代码并且仍然没有。我正在使用高级过滤器。谢谢你的帮助,我真的很感激。我希望我能给你一些啤酒给德国:o)

Not working sample

Working sample with full text

1 个答案:

答案 0 :(得分:1)

我认为主要问题是您在g内部使用newformat格式,而jqGrid目前不支持本地过滤/搜索。您可以尝试使用H格式。或者,您可以使用the answer中描述的修补程序。

更新The demo显示在应用我引用的修补程序后,可以使用formatter: 'date', formatoptions: { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }的高级搜索对话框。您可以尝试演示并输入我在下图中使用的相同数据(10/04/2012 - 5:55 PM)。您必须看到以下结果:

enter image description here

更新2 :在为您准备另一个演示时,我发现了内部parseDate功能中的另一个错误。问题是只有当需要解析的日期包含与指定格式相同的元素时,parseDate函数的当前实现才有效。例如,使用10/04/2012格式解析日期'm/d/Y - g:i A'是不正确的。要修复错误,可以包含行

if(typeof date[k] === "undefined") { continue; }

作为the loop正文的第一行。 jquery.jqGrid.src.js的固定版本可以获得here

在演示中,我使用了jqGrid searchingmultipleSearch: true选项。结果,可以指定日期的间隔,如

10/04/2012 <= x <= 10/05/2012

相应的搜索对话框如下图所示,您可以按日期间隔进行过滤

enter image description here