2

I am using jqGrid in MVC 4 to display data. I am having a grids with date/ datetime column in it. I am returning C# DateTime variable data for grid date column; which is displaying fine with the formatoption: {srcformat: 'm/d/Y', newformat: 'm/d/Y'} for date column & formatoption: {srcformat: 'm/d/Y h:i:s', newformat: 'm/d/Y h:i:s A'} for datetime column. but the sorting of this column does not reflect when user clicks column header. here is the colModel for date column

{
    name: 'TestOrderDate', index: 'TestOrderDate', formatter: 'date',
    sorttype: 'date', width: 90, align: 'center', fixed: true,
    formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' }
},

& for datetime column

{
    name: 'TestOrderDate', index: 'TestOrderDate', formatter: 'date',
    sorttype: 'date', width: 90, align: 'center', fixed: true,
    formatoptions: { srcformat: 'm/d/Y h:i:s', newformat: 'm/d/Y h:i:s A' }
},

Can anybody tell me what is wrong in colModel due to which sort behavior not working.

4

3 回答 3

3

jqGrid 不支持按日期时间排序,只支持按日期排序。因此,您可以使用其 PDF 中给出的替代方案,即下面的示例所示。如果您在网格中的数据已经按 Date 和 Time 排序,并且您还有一列,其中所有行的索引都像 Numbers 一样为 1, 2, 3, .... n 。您可以对索引列上的日期时间进行排序。这将始终确保日期时间的 asc 或 desc 顺序。

您可以按另一个 Column 内容对 jqGrid 的 DATE 和时间或日期进行排序。例如下面关于 onSortCOl 的示例:

            onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } }
于 2014-05-23T14:19:10.777 回答
0

我的解决方法是欺骗 jqGrid 加载一个 int 但显示一个日期。

我的 colModel 是 {name: 'startDt', index: 'startDt', width: 50, sortable: true, sorttype: ' int ', formatter: ' date ', formatoptions: {srcformat: " U ", newformat: "dMY" }},

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

如果您的日期为空白/空,只需使用“”加载网格。

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

于 2015-03-03T21:06:56.883 回答
0

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

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

于 2013-10-08T07:45:26.350 回答