jqGrid没有正确排序日期
使用jqGrid
排序日期时遇到问题。 鉴于以下日期
jqGrid
按如下方式排序我的日期:
01/01/2010 01/01/2011 01/02/2010 01/02/2011
我希望看到
01/01/2010 01/02/2010 01/01/2011 01/02/2011
我的日期格式是dd/mm/yyyy
,我有以下格式选项 –
{ name: 'myDate', index: 'myDate', sortable: true, sorttype: 'date' }
我在这里错过了什么或者这是jqGrid
的限制吗?
你犯了典型的错误。 问题是jqGrid期望以ISO 8601日期格式输入日期:Ymd。
如果以“dd / mm / yyyy”格式发布jqGrid的输入数据,则应将 datefmt: 'm/d/Y'
属性添加到列定义中。
最好的方法是以ISO格式填充网格的日期数据,并以任何其他格式转换输入,以便使用以下设置在jqGrid中显示日期
formatter:'date', formatoptions: {newformat:'m/d/Y'}, datefmt: 'dMY'
比较树演示的源代码: this , this和this 。
jqGrid不支持按日期时间排序,只支持按日期排序。
实际上,我发现jqGrid 确实支持按日期排序。
我们有一个JSON Web服务,其中日期(令人讨厌)以这种格式到达:
'2/24/2015 9:48:04 AM'
jqGrid完全有能力按日期和时间进行排序:
colModel: [ { name: "dt", sorttype: 'date', datefmt: 'm/d/yyyy h:i:s AmPm' },
这个特殊的应用程序使用的是jqGrid 4.4.5 (从2008年开始),所以这不是一个新function。
希望这可以帮助。
jqGrid不支持按日期时间排序,只支持按日期排序。 因此,您可以使用PDF中给出的替代方法,如下面的示例所示。 如果网格中的数据已经按日期和时间排序,并且您还有一个列,其中包含所有行的索引,如数字中的1,2,3,…. n。 您可以在索引列上对日期时间进行排序。 这将始终确保日期时间的asc或desc顺序。
您可以按其他列内容对jqGrid的日期和时间或日期进行排序。 如下面的onSortCOl示例中给出的:
onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } }