Подскажите, как правильно сделать 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,
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Помогите осуществить данный слайдерПытался сделать с помощью слик слайдера "centerMode", но слайд не выделяется в центре В общем,...
На сайте установлен кликандер, который срабатывает при первом нажатии на любую область сайтаМожно ли как-то создать свой элемент и скрипт...