欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Extjs中DisplayField的日期或者數(shù)字格式化擴(kuò)展

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

那么我們可以重寫一下 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 加了兩個(gè)屬性: 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'

    }]

});

應(yīng)該還是比較 perfect 的,哈哈哈

相關(guān)文章

最新評(píng)論