jqGrid日期列排序不适用于sorttype:';日期';

jqGrid日期列排序不适用于sorttype:';日期';,jqgrid,Jqgrid,我在MVC4中使用jqGrid来显示数据。我有一个带有日期/日期时间列的网格。我返回网格日期列的C#DateTime变量数据;对于日期列,formatoption:{srcformat:'m/d/Y',newformat:'m/d/Y'}格式选项:{srcformat:'m/d/Y h:i:s',newformat:'m/d/Y h:i:sa'}用于日期时间列。但当用户单击列标题时,此列的排序并不反映。 以下是日期列的colModel { 名称:“TestOrderDate”,索引:“TestO

我在MVC4中使用jqGrid来显示数据。我有一个带有日期/日期时间列的网格。我返回网格日期列的C#
DateTime
变量数据;对于日期列,
formatoption:{srcformat:'m/d/Y',newformat:'m/d/Y'}
格式选项:{srcformat:'m/d/Y h:i:s',newformat:'m/d/Y h:i:sa'}用于日期时间列。但当用户单击列标题时,此列的排序并不反映。 以下是日期列的
colModel

{
名称:“TestOrderDate”,索引:“TestOrderDate”,格式化程序:“date”,
sorttype:'date',宽度:90,对齐:'center',固定:true,
格式选项:{srcformat:'m/d/Y',newformat:'m/d/Y'}
},
&用于日期时间列

{
名称:“TestOrderDate”,索引:“TestOrderDate”,格式化程序:“date”,
sorttype:'date',宽度:90,对齐:'center',固定:true,
formatoptions:{srcformat:'m/d/yh:i:s',newformat:'m/d/yh:i:sa'}
},

有谁能告诉我由于哪种排序行为不起作用,
colModel
中出现了什么问题。

我建议您将2.5年前的版本4.1.1更新为版本4.5.4。它包含日期解析的新实现。要对具有
sorttype:'date'
选项的列进行排序,请先解析(取消格式化)网格中显示的字符串。在旧版本的jqGrid中,解析(和排序)不支持像
'm/d/Y h:i:sa'
这样的格式


从4.3.2开始的jqGrid版本不需要文件
省略号xbl.xml
。在早期版本的Mozilla/Firefox浏览器中,它用于显示省略号。css被替换为以4.3.2开头。

jqgrid不支持按日期时间排序,只支持按日期排序。因此,您可以使用PDF中给出的备选方案,如下面的示例所示。如果网格中的数据已经按日期和时间排序,并且还有一列包含所有行的索引,如数字中的1、2、3、。。。。N您可以在索引列上对日期时间进行排序。这将始终确保datetime的asc或desc顺序

您可以按另一列内容对jqGrid的日期和时间或日期进行排序。如以下onSortCOl上的示例所示:

            onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } }

我的解决方案是欺骗jqGrid加载int,但显示日期

我的模特是 {name:'startDt',index:'startDt',width:50,sortable:true,sorttype:'int',格式化程序:'date',格式化选项:{srcformat:“U”,新格式:“d-M-Y”}

加载网格数据时,将日期字符串转换为毫秒除以1000。在我的例子中,startDt是一个非常大的整数值

如果您的日期为空/空,只需在网格中加载“”


很好的是,空白/空现在已正确排序。升序先有空/空,降序最后有空/空。

您使用哪个
数据类型?您是否使用
loadonce:true
选项?我正在为网格使用loadonce:true设置和jason数据类型。您使用哪个版本的jqGrid?能否将服务器返回的日期格式更改为?推荐的格式与您解释的问题无关。在这种情况下,您可以使用
srcformat:“ISO8601Long”
。我以前在服务器端将日期格式化为字符串,但我的客户机建议我需要使用数据类型,根据存储过程返回的数据将数据返回到网格。i、 e.对于日期时间值,我需要在jqGrid的记录中返回c#DateTime值。我不能使用当前设置吗?您使用的是哪个版本的jqGrid?请查看问题编辑摘要并为我的问题提出解决方案。@Shaggy:对不起,您上次对问题所做的更改似乎表明您确实试图发布新问题。stackoverflow的主要目标是分享常见的问题和相应的答案。任何交换性问题都会降低搜索引擎的效率,其他用户无法在stackoverflow上找到相同的问题。因此,请始终单独提问。@Shaggy:如果我正确理解您需要的是
$.jgrid.parseDate
或`$.fn.fmatter.call(这个“日期”、cellval、opts、rowObject、action)的用法,`在
LoadCPAPFollowUpDialog
中。我会在你分开你的问题后发布我的答案。谢谢你的建议。我删除了此问题中的更改并发布了新问题以及我为其实施的解决方案。请告诉我这是否正确。嗨,你们帮助我解决了jqGrid问题。谢谢你迄今为止的帮助。目前我面临着另一个问题,即服务器端分页没有调用action方法。请检查这个问题并为我提供解决方案。