Как решить "TypeError: Ext.getCmp (...). SetReadOnly не является функцией" - PullRequest
0 голосов
/ 04 февраля 2019

Я устанавливаю поле для чтения только в моем приложении, но я получаю вышеуказанную ошибку.Поле, которое я пытаюсь установить только для чтения, является полем флажка.

Я пытался описанным ниже способом установить его только для чтения:

Ext.getCmp('virtualFeederLoadPloarity').setReadOnly(true);

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Ext.getCmp ('componentId') метод принимает идентификатор компонента.

Проверьте этот рабочий пример

Ext.application({
name : 'Fiddle',

launch : function() {
    Ext.create('Ext.panel.Panel',{
        width:400,
        title:'Test CB',
        renderTo:Ext.getBody(),
        height:200,
        items:[{
            xtype:'checkboxfield',
            id:'cbId',
            name : 'checkbox1',
            fieldLabel: 'Test Checkbox',
            checked: true
        }],
        buttons:[
            {
                text:'Readonly',
                handler:function(){
                    Ext.getCmp('cbId').setReadOnly(true);
                }
            },{
                text:'Disable Readonly',
                handler:function(){
                    Ext.getCmp('cbId').setReadOnly(false);
                }
            }]
    })
}
});

Sencha Fiddle Link

0 голосов
/ 04 февраля 2019

Сообщение об ошибке TypeError: Ext.getCmp(…).setReadOnly is not a function означает, что Ext.getCmp('virtualFeederLoadPloarity') не является полем, как вы ожидаете.Выполните Ext.getCmp(), используя идентификатор вашего поля.Кроме того, с помощью кода вы можете попробовать проверить xtype с помощью getXType() и увидеть фактический тип вашего объекта.

Ext.application({
    name : 'Fiddle',

    launch : function() {
        Ext.create('Ext.form.field.Text', {
            renderTo: Ext.getBody(),
            id: 'myTextField1',
            labelWidth: 50,
            width: 500,
            fieldLabel: 'Names'
        });
        Ext.getCmp('myTextField1').setReadOnly(true);
        alert(Ext.getCmp('myTextField1').getXType()); 
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...