CheckboxGroup с данными из своей таблицы

199
28 марта 2018, 07:07

Подскажите, как правильно сделать checkboxgroup с данными их своей таблицы? Я пытаюсь делать так, но данные, хоть и принимаются от процессора, но не выводятся в окне:

MyComp.combo.CheckboxGroup = function (config) {
    config = config || {};
    Ext.applyIf(config, {
        items: [{
            boxLabel: 'hidden',
            name: config.hiddenName + '[]',
            inputValue: '',
            itemId: '',
            hidden: true,
            checked: true
        }],
        msgTarget: 'under',
        listeners: {
            afterrender: {fn: this.onAfterRender, scope: this}
        }
    });
    MyComp.combo.CheckboxGroup.superclass.constructor.call(this, config);
};
Ext.extend(MyComp.combo.CheckboxGroup, Ext.form.CheckboxGroup, {
    onAfterRender: function () {
        if (this.url) {
            this.loadData();
        } else {
            this.setup();
        }
    },
    loadData: function () {
        MODx.Ajax.request({
            url: this.url,
            params: this.baseParams,
            listeners: {
                success: {
                    fn: function (r) {
                        this.setup(r.results);
                    },
                    scope: this
                }
            }
        });
    },
    setup: function (data) {
        if (data) {
            Ext.each(data || [], function (item) {
                this.addItem({
                    boxLabel: item[this.displayField],
                    name: this.hiddenName + '[]',
                    inputValue: item[this.valueField],
                    checked: this.checkValue(item[this.valueField])
                });
            }, this);
        } else {
            Ext.each(this.items.items || [], function (item) {
                if (!item.hidden) {
                    item.setValue(this.checkValue(item.inputValue));
                }
            }, this);
            this.addItem({
                boxLabel: 'hidden',
                name: this.hiddenName + '[]',
                inputValue: '',
                itemId: '',
                hidden: true,
                checked: true
            });
        }
    },
    addItem: function (data) {
        var checkbox = new Ext.form.Checkbox(data),
            col = this.panel.items.get(this.items.getCount() % this.panel.items.getCount());
        this.items.add(checkbox);
        col.add(checkbox);
    },
    checkValue: function (val) {
        var checked = false;
        Ext.each(this.values || [], function (item) {
            if (item.value == val) {
                checked = true;
                return false;
            }
        });
        return checked;
    },
    validateValue: function (b) {
        var valid = false;
        if (this.allowBlank) return true;
        Ext.each(this.items.items || [], function (item) {
            if (!item.hidden && item.getValue()) {
                valid = true;
                return false;
            }
        }, this);
        if (!valid) this.markInvalid(this.blankText);
        return valid;
    }
});
Ext.reg('myComp-pricegroup', MyComp.combo.CheckboxGroup);

И в окне, где необходимо вывести группу чекбоксов добавляю:

{
    xtype: 'mycomp-pr',
    fieldLabel: _('mycomp_pr_name'),
    description: '<b>[[*name]]</b><br />'+_('mycomp_pr_name_help'),
    columns: 1,
    hiddenName: 'name',
    displayField: 'name',
    valueField: 'id',
    url: MyComp.config.connector_url,
    baseParams:{
        action: 'mgr/item/pr/getpr'
    },
    allowBlank: true,
}
READ ALSO
Как написать такой слайдер?

Как написать такой слайдер?

Здравствуйте! Помогите осуществить данный слайдерПытался сделать с помощью слик слайдера "centerMode", но слайд не выделяется в центре В общем,...

136
Как заблокировать кликандер?

Как заблокировать кликандер?

На сайте установлен кликандер, который срабатывает при первом нажатии на любую область сайтаМожно ли как-то создать свой элемент и скрипт...

195
Вывод ошибок и уведомлений

Вывод ошибок и уведомлений

Всем здравствуйтеПомогите с выводом ошибок при загрузке файлов

181