Сохранить значения флажков при перезагрузке страницы Ext JS - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть следующая часть кода, которая отображает ряд флажков в сетке, таким образом сетка

enter image description here

столбцы сетки:

columns: [{
                text: 'Name',
                dataIndex: 'name'
            },{
                text: 'Permissions',
                dataIndex: 'permissions',
                width: 200,
                renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
                    var checkboxes = '';
                    for (var variable in value) {
                        var temp = value[variable] === 1 ? 'checked' : '';
                        checkboxes += '<input type="checkbox" ' + 'name="' + variable + '" value="' +
                            value[variable] + '"' + temp + '>' + variable;

                    }
                    return checkboxes;
                }
            }] 

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

1 Ответ

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

Если вы хотите подключить слушателя, это может быть полезно:

{
    text: 'Permissions',
    dataIndex: 'permissions',
    width: 350,
    renderer: function(value, cell, record) {
        var prefix = 'MyCheckBox_' + record.get('name') + '_';
        var s = '';
        for (var variable in value) {
            s = s + '<input type="checkbox" ';
            s = s + 'id="' + prefix + variable + '" ';
            if (value[variable] == 1) {
                s = s + 'checked ';
            };
            s = s +
                'onclick="'+
                        'var r = Ext.getCmp(\'MyGridPanel\').getSelectionModel().getSelection()[0]; ' +
                        'var p = r.get(\'permissions\'); ' +
                        'p[\'' + variable + '\'] = (document.getElementById(\'' + prefix + variable + '\').checked ? 1 : 0); ' +
                        'r.set(\'permissions\', p); ' +
                        'r.commit(); ' +
                        '" ';
            s = s + '>' + variable;
        }
        console.log(value);                     
        return s;
    }
}

Примечания:

Этот пример протестирован с ExtJS 4.2.

С этим кодом флажок состояния проверки записывается только в магазине, не более того.Вы можете написать другую функцию обработки.

...