texfield渲染器显示数字格式

时间:2017-10-02 15:12:34

标签: extjs extjs5 extjs6 sencha-architect extjs6-classic

我有一个带有文本字段的表单,它有一个触发器来搜索输入的文本。 我想允许用户只键入其中的数字,并允许用户键入他想要的全部金额,并在用户完成输入时将其渲染为数字格式(0.000000)。就像我们在网格列中使用渲染器一样。我怎样才能在表格中实现这一目标。 我试过这种方式

{
            xtype: 'textfield',
            bind: {
                value: {
                    bindTo: '{salesPriceValue}',
                    twoWay: false

                },
                //disabled: '{!customerPartFilled}',
                //disabled: '{disableSalesPrice}',

                mode: '{currentHeader.adjustmentTypeId}',
                readOnly: '{!securityAccessDetailForm}',
                hideTrigger: '{hideSalesTrigger}'
            },
            fieldLabel: 'Sales Price',
            reference: 'salesPrice',
           // maskRe: /[0-9.-]/,
            regex: /^\-*\d+(\.\d{1,6})?$/,
            flex: 1,
           // hideTrigger: true,
            checkChangeBuffer: 550,
            checkChangeEvents: ['keyup'],
            setMode: function(mode) {
                FACTT.app.setComponentMode(this, mode);
            },
            listeners: {
                change: 'onSellingPriceChange'
            },
            triggers: {
                mytrigger: {
                    handler: 'onSellingPriceLookup',
                    cls: 'x-form-search-trigger'
                }
            }
        in view model
        salesPriceValue: {
        bind: {
            Price: '{currentDetail.salesPrice}'
        },
        get: function(data) {

            if(Ext.isEmpty(data.Price) || data.Price === 0 ){
                return Ext.util.Format.number(data.Price, "0.000000");
            }
            else{
                return data.Price;
            }
           // return Ext.util.Format.number(data.Price, "0.000000");
        }
    }

但如果用户输入30,我无法以数字格式显示。

0 个答案:

没有答案