Ext.Net中Ext.Form.NumberField的格式化

最近在做一个项目,在column中使用numberField时可以通过render来格式化显示数据,于是在panel这一类中使用NumberField也想格式化显示数据,于是自己就尝试些,在尝试了很多次失败后,我决定对Numberfield控件的重写:

 Ext.override(Ext.form.NumberField, {

            baseChars: "0123456789,",

            setValue: function (v) {

                v = typeof v == 'number' ? v : String(v).replace(this.decimalSeparator,

".").replace(/,/g, "");

                v = isNaN(v) ? '' : Ext.util.Format.number(

this.fixPrecision(String(v)), "0,000,000.00");

                this.setRawValue(v);

            },

            validateValue: function (v) {               

  var value = this.getRawValue();               

  if (!Ext.form.NumberField.superclass.validateValue.call(this, value)) {                    

value = String(value).replace(this.decimalSeparator, ".").replace(/,/g, "");                    

value = parseFloat(value);                    

if (!Ext.form.NumberField.superclass.validateValue.call(this, value)) {           

              return false;                     }

else {

return true; }                

}             },

            getValue: function (v) {         

        v = this.getRawValue();               

  v = String(v).replace(this.decimalSeparator,".").replace(/,/g, "");                

return parseFloat(v);             },            

on: function (v) {             

    v = this.getRawValue();            

     v = String(v).replace(this.decimalSeparator,".").replace(/,/g, "");            

     this.setRawValue(v);

            }

        });

 

 

posted @ 2014-01-10 15:01  yycan  阅读(905)  评论(0编辑  收藏  举报