在JQGrid中为日期字段设置自定义格式化程序

我希望在网格上显示日期,因为N / A在数据库中为NULL,或者是正常日期格式。 目前我有这个代码:

name: 'Handshake_Actual_Date', index: 'Handshake_Actual_Date', search: false, editable:true, align: "left", width: 75, formatter: "date", formatoptions: {newformat:"m/d/Y" }, editoptions: { size: 20, dataInit: function (el) { $(el).datepicker({ dateFormat: 'mm/d/yy' }); }, defaultValue: function () { var currentTime = new Date(); var month = parseInt(currentTime.getMonth() + 1); month = month <= 9 ? "0" + month : month; var day = currentTime.getDate(); day = day <= 9 ? "0" + day : day; var year = currentTime.getFullYear(); return day + "/" + month + "/" + year; } } 

它工作得很好,但我想要一个如下所示的自定义格式化程序:

 function myFormatter (cellvalue, options, rowObject) { if(cellvalue==null) { return "N/A"; } else { return $.fn.fmatter.date(cellvalue, options, rowObject); } } 

但它不起作用..! 举个例子,你可以在这里看到代码: http : //jsfiddle.net/35Larwva/

尝试更换

 $.fn.fmatter.date(cellvalue, options, rowObject) 

 $.fn.fmatter.call(this, "date", cellvalue, options, rowObject); 

此外,我建议你使用更正确的JavaScript代码: cellvalue==NULL应该替换为cellvalue === null ,你应该使用; 在语句结束时(例如,在return "N/A" ),最好总是使用{}来表示ifelse语句。

更新 :我修复了你的jqfiddle演示,现在它可以正常工作: http : //jsfiddle.net/OlegKi/35Larwva/2/