ExtJs 3 - Как мне добавить свойство к существующему элементу в элементах? - PullRequest
0 голосов
/ 12 октября 2011

Мне нужно добавить свойство в существующий элемент FormPanel. код:

Application.TypesForm = Ext.extend(Ext.form.FormPanel, {
initComponent : function() {

    Ext.apply(this, {
        defaultType : 'textfield',
        items : [
            {
                fieldLabel : 'Id',
                typeAhead   : true,
                name        : 'id', 
                hiddenName  : 'id',
                hiddenValue : 'id',
                valueField  : 'id',
                readOnly    : true, 
                cls         : 'disabled_field'
            }
            ,{
                xtype    : 'ProductsVerticalsComboBox',
                id       : 'add_vertical_id',
                editable : false
                //readOnly : true, cls : 'disabled_field'
            }

В режиме редактирования необходимо зарегистрировать add_vertical_id - readOnly свойство и cls . А в режиме добавления - они не нужны. Я делаю так:

Ext.apply(Ext.getCmp('add_vertical_id'), {readOnly : true, cls : 'disabled_field'});

Но не работает. Что я делаю не так ??

1 Ответ

0 голосов
/ 13 октября 2011

решил

    items : [
{
    fieldLabel : 'Id',
    typeAhead   : true,
    name        : 'id', 
    hiddenName  : 'id',
    hiddenValue : 'id',
    valueField  : 'id',
    readOnly    : true, 
    cls         : 'disabled_field',
    // Disabled Vertical combobox when id is not empty.
    listeners: {
        render: function() {
            if (this.value) {
                Ext.apply(Ext.getCmp('add_vertical_id'), {
                    readOnly : true, 
                    cls      : 'disabled_field'
                });
            }
        }
    }
}
,{
    xtype    : 'ProductsVerticalsComboBox',
    id       : 'add_vertical_id',
    editable : false
}
...