在用Extjs的时候,有时需要对 Ext.form.DisplyField 进行格式化。
- var form = new Ext.form.FormPanel({
- 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;
- }
- });
- var form = new Ext.form.FormPanel({
- frame: true,
- renderTo: 'form-div',
- items: [{
- xtype: 'displayfield',
- fieldLabel: 'Date',
- value: new Date(),
- dateFormat: 'm/d Y'
- }]
- });
