как сделать условие переключателя на основе extjs - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу отметить одно из полей радиосвязи на основе некоторого условия, и когда условие не выполнено, нужно отобразить сообщение об ошибке в окне.

var item = {
    xtype: 'radiogroup',
    columnWidth : 1, 
    columns: 2, 
    id : 'radio', 
    height : 50, 
    itemId:'defaultValue_radio', 
    vertical:false, 
    items: [ 
        {
            boxLabel: 'None',
            name: 'defacultValueType', 
            inputValue: 'None' 
        }, {
            boxLabel: 'All', 
            name: 'defacultValueType', 
            inputValue: 'All' 
        }, {
            boxLabel: 'Custom value', 
            name: 'defacultValueType', 
            inputValue: 'Custom value'
        }, {
            boxLabel: 'Select from list', 
            name: 'defacultValueType', 
            inputValue: 'Select value' 
        } 
    ], 

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете установить для simpleValue значение true в radiogroup, чтобы включить привязку значения, затем вы можете прослушать событие beforerender, получить значение из вашего магазина или что бы вы ни получили, установить значение и, если значение не определено, вы возвращаете сообщение.

Fiddle

    items: [{
        xtype: 'radiogroup',
        columnWidth: 1,
        columns: 2,
        id: 'radio',
        height: 50,
        itemId: 'defaultValue_radio',
        vertical: false,
        simpleValue: true,
        items: [{
            boxLabel: 'None',
            name: 'defacultValueType',
            inputValue: 'None'
        }, {
            boxLabel: 'All',
            name: 'defacultValueType',
            inputValue: 'All'
        }, {
            boxLabel: 'Custom value',
            name: 'defacultValueType',
            inputValue: 'Custom value'
        }, {
            boxLabel: 'Select from list',
            name: 'defacultValueType',
            inputValue: 'Select value'
        }],
        listeners: {
            beforerender: function (component, eOpts) {
                let value = 'Custom value'; //get value from store or whatever you like
                component.setValue(value);
                if (!component.getValue()) {
                    Ext.Msg.show({
                        title: 'Error!',
                        message: 'Invalid Value',
                        buttons: Ext.Msg.OK,
                        icon: Ext.Msg.WARNING,
                    });
                }

            }
        }
    }]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...