extjs 3.4 EditorGridPanel裏日期控件在後臺獲取格式爲"2015-10-10T00:00:00"的問題解決

背景: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的學習階段,如果哪路大神有更優的解決方案,麻煩指點一下!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章