前景: 我们在后端操作时间的时候,往往定义的Date格式,而extjs显示的时候,如果直接显示的是Date,往往不显示,或者一堆NaNaNa。。。
1. Extjs 的gridStrore:
/** 拜访记录store */
var visitRecordGridStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url:'./customer/visitRecord/listByCustomerId'}),
reader: new Ext.data.JsonReader({}, [
{name: 'id'},
{
name: 'visitDt',
type: 'date',
mappping: 'visitDt.fastTime',
convert:function(v,f){
if(v == null){
return '';
}
var dt = new Date();
dt.setTime(v);
return Ext.util.Format.date(dt,'Y-m-d');
}
},
{name: 'currentStatus'},
{name: 'remark'}
]),
pruneModifiedRecords:true
});
注:从后端返回的object中时间的属性名是visitDt. 但是要用到是的visitDt.fastTime. 或者是visitDt.time (貌似 jre 不同,属性名还不一定,总之debug一下,看到属性里包含的属性fastTime 是一串数字——表示的是时间); 里面还用到了mapping 对应的就是visitDt.fastTIme .
2. grid 的column 就是正常的column,无需有其他改变。
columns: [{
header : 'id',
dataIndex : 'id',
hidden: true,
align : 'center'
},{
header : '拜访日期',
dataIndex : 'visitDt',
align : 'center',
format:'Y-m-d'
renderer:Ext.util.Format.dateRenderer('Y-m-d')
},{
header : '进展情况',
dataIndex : 'currentStatus',
align : 'center'
},{
header : '备注',
dataIndex : 'remark',
align : 'center'
}]