对于我的jqGrid中的其中一列,我提供了一个自定义格式化函数。我提供了一些特殊情况,但如果不满足这些条件,我想使用内置的日期格式化工具方法。我似乎没有得到$ .extend()的正确组合来创建方法所期望的选项。jqGrid自定义格式化程序
我colModel此列:
{ name:'expires',
index:'7',
width:90,
align:"right",
resizable: false,
formatter: expireFormat,
formatoptions: {srcformat:"l, F d, Y g:i:s A",newformat:"n/j/Y"}
},
和我想要做的
function expireFormat(cellValue, opts, rowObject) {
if (cellValue == null || cellValue == 1451520000) {
// a specific date that should show as blank
return '';
} else {
// here is where I'd like to just call the $.fmatter.util.DateFormat
var dt = new Date(cellValue * 1000);
var op = $.extend({},opts.date);
if(!isUndefined(opts.colModel.formatoptions)) {
op = $.extend({},op,opts.colModel.formatoptions);
}
return $.fmatter.util.DateFormat(op.srcformat,dt,op.newformat,op);
}
}
一个例子(异常被抛出在DateFormat的方法,看起来胆量就像它试图读取传入的选项的掩码属性一样)
编辑:
$ .extend将所有需要的东西从i18n库设置的全局属性中获取,$ .jgrid.formatter.date。
var op = $.extend({}, $.jgrid.formatter.date);
if(!isUndefined(opts.colModel.formatoptions)) {
op = $.extend({}, op, opts.colModel.formatoptions);
}
return $.fmatter.util.DateFormat(op.srcformat,dt.toLocaleString(),op.newformat,op);
是的,似乎我不得不从i18n格式化选项延伸,发现正确的组合。谢谢! – 2010-05-21 18:13:39
不客气,很高兴帮助:) – 2010-05-21 18:37:14