extjs 3.4 EditorGridPanel里日期控件在后台获取格式为"2015-10-10T00:00:00"的问题解决
2015-10-10 18:35
781 查看
背景:extjs3.4
需求:后台获取前台EditorGridPanel里选择的日期,然后转换为Timestamp ,timestamp的格式需要为'yyyy-MM-dd HH:mm:ss',但是从前台传递到后台的字符是'yyyy-MM-ddTHH:mm:ss' 。前台的日期显示格式需为“yyyy-MM-dd”。
关键代码:
this.fields = ["number","startTime"];
this.col = new Ext.grid.ColumnModel({
defaults:{
width:120,
sortable:true
},
columns:[{
header:'序号',
dataIndex:'number'
},{
header:'开始日期',
dataIndex:'startTime',
editor:new Ext.form.DateField({
minValue :new Date()
}),
render:function(v){
if(v instanceof Date){
return new Date(v).format("Y-m-d");
}else{
return v.substr(0,10);
}
}
//renderer:Ext.util.Format.dateRenderer('Y-m-d') 用自己写的render是为了避免页面出现"0NaN-NaN-NaN"的异常
}]
});
this.store = new Ext.data.ArrayStore({
fields:this.fields,
data:this.data //这里就省略data的定义
});
this.grid = new Ext.grid.EditorGridPanel({
store:this.store,
cm:this.col,
width:300,
height:200
});
this.gridHidden = Ext.create({
xtype:'exhidden',
name:'mainList'
});
在form提交之前重新对Grid里的数据进行格式转换
var dateArr = [];
var store = Ext.decode(this.grid.getGridData());
for(var i =0;i<store.lengh;i++){
var d = store[i];
var rec = {};
rec.number = d.number;
rec.startTime = Ext.util.Format.date(d.startTime,"Y-m-d H:i:s");
dateArr .push(rec);
}
var jsonStr = Ext.encode(dateArr);
this.gridHidden.setValue(jsonStr ); //最终传递到后台的值
本人正处于extjs的学习阶段,如果哪路大神有更优的解决方案,麻烦指点一下!
需求:后台获取前台EditorGridPanel里选择的日期,然后转换为Timestamp ,timestamp的格式需要为'yyyy-MM-dd HH:mm:ss',但是从前台传递到后台的字符是'yyyy-MM-ddTHH:mm:ss' 。前台的日期显示格式需为“yyyy-MM-dd”。
关键代码:
this.fields = ["number","startTime"];
this.col = new Ext.grid.ColumnModel({
defaults:{
width:120,
sortable:true
},
columns:[{
header:'序号',
dataIndex:'number'
},{
header:'开始日期',
dataIndex:'startTime',
editor:new Ext.form.DateField({
minValue :new Date()
}),
render:function(v){
if(v instanceof Date){
return new Date(v).format("Y-m-d");
}else{
return v.substr(0,10);
}
}
//renderer:Ext.util.Format.dateRenderer('Y-m-d') 用自己写的render是为了避免页面出现"0NaN-NaN-NaN"的异常
}]
});
this.store = new Ext.data.ArrayStore({
fields:this.fields,
data:this.data //这里就省略data的定义
});
this.grid = new Ext.grid.EditorGridPanel({
store:this.store,
cm:this.col,
width:300,
height:200
});
this.gridHidden = Ext.create({
xtype:'exhidden',
name:'mainList'
});
在form提交之前重新对Grid里的数据进行格式转换
var dateArr = [];
var store = Ext.decode(this.grid.getGridData());
for(var i =0;i<store.lengh;i++){
var d = store[i];
var rec = {};
rec.number = d.number;
rec.startTime = Ext.util.Format.date(d.startTime,"Y-m-d H:i:s");
dateArr .push(rec);
}
var jsonStr = Ext.encode(dateArr);
this.gridHidden.setValue(jsonStr ); //最终传递到后台的值
本人正处于extjs的学习阶段,如果哪路大神有更优的解决方案,麻烦指点一下!
相关文章推荐
- 画一画javascript原型链
- jsp JSTL
- js三级联动
- BlocksIt.js瀑布流插件结合ajax实现无限加载数据
- js对象如何实现数组索引功能并且自定义自己的方法 (4种方法)
- 记录常用js方法
- javascript检测对象类型的方法
- js将时间由long类型转换为string类型
- 使用JavaScript实现回到顶部功能
- 外部的 JavaScript
- JavaScript 运算符
- JavaScript事件模型
- JavaScriptSerializer类序列化日期时需要注意的问题
- JavaScript 错误 - Throw、Try 和 Catch
- js之获取窗口大小和位置信息
- JS 的一些知识点
- Ionic javascript Api | ion-view 视图的生命周期及事件集合
- 项目整理三.excel文件转json
- js的filter的巧用
- IE浏览器中JSON对象兼容性的问题