我有jqGrid 4.15.3。我正在使用 filterToolbar 进行列搜索。我的列日期,其格式为" /日期(1515401700270)/" 。比较参数为 eq,ge 。问题是 ge 工作正常,但在使用网格中的现有值相等进行搜索时,它不会显示任何内容。你有任何想法如何解决这个问题?这与模型的 srcFormat 有关吗?
Value: /Date(1515401700270)/ -> does not work
Value: 2017-01-02 -> work
我使用的列模型是:
{ "search" : "true", "label" : "DateCreated", "name": "DateCreated", "width" : 140, "sorttype": "date", "formatter" : "date", "formatoptions" : { "newformat" : "d.m.Y" },
"searchoptions" : { "clearSearch" : "false", "sopt": ["eq","ge"], "dataInit" : "(function(el) { $(el).datepicker( { firstDay: 1, dateFormat: 'dd.mm.yy' } ); }) " } }]
答案 0 :(得分:0)
问题的原因很容易解释。 Date(1515401700270)
实际上不是2018-01-08
,而是2018-01-08 09:55:00 GMT+0100"
。即使是显示完整日期,因为日期四舍五入到只有jqGrid仍将数据保存为原始日期的日期。在比较日期期间,将使用原始日期。
要允许用户在这些日期使用“平等”操作,您有三个主要选项:
jsonmap
列中添加DateCreated
属性,将输入值作为时间舍入到00:00的日期。 jsonmap
用于读取输入数据,本地jqGrid中保存的数据将被舍入customSortOperations
来定义自定义排序/过滤操作。它允许重新定义eq
日期的操作。您只需定义eq
,以便仅比较年,月和日,而忽略所有其他。您可以在the wiki article中查看该功能的说明。 The answer包括the demo,其中演示了该方法。