Extjs中DisplayField的日期或者數字格式化擴展
更新時間:2010年09月03日 22:17:52 作者:
在用Extjs的時候,有時需要對 Ext.form.DisplyField 進行格式化。
使用 Ext.form.FormPanel 來處理數據時候,某些字段是需要只讀的。當然我們可以使用 Ext.form.TextField,然后設置成 ReadOnly,不過這樣子的顯示效果不是很好,因為始終會有個輸入框。所以我們必須使用 Ext.form.DisplayField,但是 Ext.form.DisplayField 沒有一個format的屬性,也不具備 renderer 這個事件,比如日期字段
var form = new Ext.form.FormPanel({
frame: true,
renderTo: 'form-div',
items: [{
frame: true,
renderTo: 'form-div',
items: [{
xtype: 'displayfield',
fieldLabel: 'Date',
value: new Date()
}]
});
});
那它顯示的就有點不正確了

那么我們可以重寫一下 Ext.form.DisplayField,讓他支持 format 屬性
Ext.override(Ext.form.DisplayField, { getValue: function () { return this.value; }, setValue: function (v) { this.value = v; this.setRawValue(this.formatValue(v)); return this; }, formatValue: function (v) { if (this.dateFormat && Ext.isDate(v)) { return v.dateFormat(this.dateFormat); } if (this.numberFormat && typeof v == 'number') { return Ext.util.Format.number(v, this.numberFormat); } return v; } });
我們給 Ext.form.DisplayField 加了兩個屬性: dateFormat 和 numberFormat,然后我們將上面的 FormPanel 改一下
var form = new Ext.form.FormPanel({
frame: true,
renderTo: 'form-div',
items: [{
xtype: 'displayfield',
fieldLabel: 'Date',
value: new Date(),
dateFormat: 'm/d Y'
}]
});
應該還是比較 perfect 的,哈哈哈
相關文章
EXTJS FORM HIDDEN TEXTFIELD 賦值 使用value不好用的問題
用了一個方法解決了此問題,但是老是感覺這樣解決了很不爽,各位有沒有遇到過這種問題,請指點一下。2011-04-04Extjs ajax同步請求時post方式參數發(fā)送方式
一般參數傳遞通過url后面跟后臺也能取到,不過看到send參數也可以發(fā)送參數,試驗了一下服務器端接受不到發(fā)送的參數,在firebug里看到發(fā)送的請求post部分是一個串,不太象正常發(fā)送的參數。2009-08-08