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

时间:2014-09-05 10:31:14

标签: jquery jqgrid date-formatting

我希望在网格上显示日期,因为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/

1 个答案:

答案 0 :(得分:2)

尝试替换

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

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

此外,我建议您使用更正确的JavaScript代码:cellvalue==NULL应替换为cellvalue === null,您应在语句末尾使用;return "N/A"之后示例)并且最好始终对{}if语句使用else

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