jqgrid中的多个格式化程序日期选项

时间:2017-06-15 16:47:44

标签: date jqgrid formatter

我在jqgrid中有一个没有正确排序的日期字段。原因是我的初始formatter:'date'被我对formatter: function(...)的第二次引用所覆盖。 如何保留这两项功能?

这是我的代码:

{name:'FUSInvitedDateX',hidden:true,index:'FUSInvitedDateX',width:'250',
search: true,searchoptions:{sopt:['eq','ne','lt','le','gt','ge'], dataInit: 
function(elem) {$(elem).datepicker();}},sorttype: 'date', 
formatter:'date',formatoptions: {srcformat: 'm/d/Y', newformat: 'm/d/Y' },
formatter: function(cellvalue, options, rowObject) { return 
highlight(cellvalue, options, rowObject, ['FUSScheduledDateX','FUSCompletedDateX','InterviewStatus_DerivedX'],'interview-invite-late');}}

然后在突出显示功能中我有这样的东西:

function highlight(cellvalue,options,rowObject,compare,color) {
                if (cellvalue.length==0) { return cellvalue; }
                [ evaluating code ]
                 return '<span>' + cellvalue + '</span>';

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

很抱歉,但是无法在一个对象中定义具有相同名称的两个属性。另一方面,您在列定义中包含了formatter属性的两倍。这是语法错误。

即使您要删除formatter:'date'并仅使用自定义格式化程序(formatter回调函数),sorttype: 'date'也无效,因为jqGrid将无法正确解析日期。

如果你真的需要使用自定义格式化程序(回调函数),那么你也应该将sorttype定义为回调函数。您可以解析sorttype函数内的输入字符串并将其作为ISO日期返回(如2017-06-15)。