ExtJS и динамически обновляемый CheckboxGroup
Здравствуйте!
Надо сделать динамически обновляемый Ext.form.CheckboxGroup, а он к сожалению не принимает параметр store… Я пытаюсь сделать так:
1) Первым делом объявил свой кастомный CheckboxGroup:
2) Слушаю в кастомном combobox-е событие select:
Но вот незадача! Если следом вывести прописать console.log(checkbox.items), то свежедобавленный пункт мы увидим, а вот в форме (рядом с уже имеющимися чекбоксами) не появляется. Как можно добавить его и для зрительного восприятия?)
Надо сделать динамически обновляемый Ext.form.CheckboxGroup, а он к сожалению не принимает параметр store… Я пытаюсь сделать так:
1) Первым делом объявил свой кастомный CheckboxGroup:
myComponent.checkbox.ProductGroup = function(config)
{
config = config || {};
Ext.applyIf(config,{
id:'mycomponent-checkbox-product-group',
xtype: 'checkboxgroup',
fieldLabel: 'Single Column',
itemCls: 'x-check-group-alt',
// Put all controls in a single column with width 100%
columns: 1,
items: [
{boxLabel: 'Товар 8', name: 'products[8]', value: 8, checked: true},
{boxLabel: 'Товар 9', name: 'products[9]', value: 9, checked: true},
]
});
myComponent.checkbox.ProductGroup.superclass.constructor.call(this,config);
};
Ext.extend(myComponent.checkbox.ProductGroup, Ext.form.CheckboxGroup);
Ext.reg('mycomponent-checkbox-product-group', myComponent.checkbox.ProductGroup);2) Слушаю в кастомном combobox-е событие select:
select: function(combo, row)
{
var checkbox = Ext.getCmp('mycomponent-checkbox-product-group-'+ config.id);
var find = false;
checkbox.items.each(function(item,index,countall)
{
if( item.value == row.id )
{
item.setValue(true);
find = true;
}
},
this);
if(!find)
{
checkbox.items.addAll(
[new Ext.form.Checkbox({boxLabel: row.data.pagetitle, name: 'products['+row.data.id+']', value: row.data.id, checked: true})]
);
}
},Но вот незадача! Если следом вывести прописать console.log(checkbox.items), то свежедобавленный пункт мы увидим, а вот в форме (рядом с уже имеющимися чекбоксами) не появляется. Как можно добавить его и для зрительного восприятия?)
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Пробовал и так:
и так:
и так:
Всё одно — не перерисовывает ничего.
Но можно пушнуть переписав вот так checkbox.items.items.push({...}), но и так получается вот такой бред:
Да и после, при выполнении checkbox.doLayout(); также ничего не происходит.
А вот когда я делаю так, как у меня в посте выше checkbox.items.addAll([new Ext.form.Checkbox({...})]);, то всё норм с типами… у всех «S»… Вот только также ничего не происходит с отображением чекбоксов. :(
В доке вот что нашел: