Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 更改组件的初始属性_Extjs_Extjs4.2 - Fatal编程技术网

Extjs 更改组件的初始属性

Extjs 更改组件的初始属性,extjs,extjs4.2,Extjs,Extjs4.2,我有一个numberfield,我用enforceMaxLength设置maxLength属性。因此,该字段不接受maxLength上的值,到目前为止还不错 我想根据其他组件值更改此maxLength属性。我尝试了几种方法,但没有成功。它设定了价值,但没有成功 问题是,如何在渲染后更改组件的初始属性 { xtype: 'combobox', fieldLabel: 'PROMOSYON TİPİ', name: 'PROMO_TYPE', id: 'promo_t

我有一个numberfield,我用enforceMaxLength设置maxLength属性。因此,该字段不接受maxLength上的值,到目前为止还不错

我想根据其他组件值更改此maxLength属性。我尝试了几种方法,但没有成功。它设定了价值,但没有成功

问题是,如何在渲染后更改组件的初始属性

{
    xtype: 'combobox',
    fieldLabel: 'PROMOSYON TİPİ',
    name: 'PROMO_TYPE',
    id: 'promo_type',
    displayField: 'PROMO_TYPE_NAME',
    valueField: 'PROMO_TYPE_VALUE',
    store: promoType,
    queryMode: 'local',
    inputWidth: 250,
    labelWidth: '280px',
    margin: '0 0 15 0',
    listeners: {
        change: function(cb,nv) {
            if (nv != 0 || nv != 2) {
                var pd = Ext.getCmp('promo_disc');
                Ext.apply(pd, {maxLength: 8});
            }
        }
    }
},
{
    xtype: 'numberfield',
    name: 'PROMO_DISCOUNT',
    fieldLabel: 'PROMOSYON İNDİRİMİ',
    id: 'promo_disc',
    inputWidth: 250,
    labelWidth: '280px',
    margin: '0 0 15 0',
    maxLength: 3,
    enforceMaxLength: true,
    minValue: 0
}

基于@credenson的想法,我采取了以下方法

{
    xtype: 'combobox',
    fieldLabel: 'PROMOSYON TİPİ',
    name: 'PROMO_TYPE',
    id: 'promo_type',
    displayField: 'PROMO_TYPE_NAME',
    valueField: 'PROMO_TYPE_VALUE',
    store: promoType,
    queryMode: 'local',
    inputWidth: 250,
    labelWidth: '280px',
    margin: '0 0 15 0',
    listeners: {
        change: function(cb,nv) {
            if (nv != 0 || nv != 2) {
                    // promo_disc-inputEl is an ID for <input> element
                    Ext.get('promo_disc-inputEl').set({maxlength: 8});
            }
        }
    }
},
{
    xtype: 'numberfield',
    name: 'PROMO_DISCOUNT',
    fieldLabel: 'PROMOSYON İNDİRİMİ',
    id: 'promo_disc',
    inputWidth: 250,
    labelWidth: '280px',
    margin: '0 0 15 0',
    maxLength: 3,
    enforceMaxLength: true,
    minValue: 0
},
设置maxLength将向组合框的标记添加一个名为maxLength的属性。因此,您可以获取标记并将maxlength属性的值设置为所需的值。或者,您可以销毁现有的ext组件,并使用新的maxLength创建一个新的组合框。