在extJS中动态设置multiSelect for combobox

时间:2015-07-17 00:37:17

标签: javascript extjs combobox extjs5 sencha-architect

我在使用我的组合框的multiSelect属性时遇到了一个有趣的问题。

我的网格有三列ID,名称,相关部分。

我启用了Rowediting插件,编辑ID为textfield(EditID),Name为textfield(EditName),Associated Part为combobox(EditPartCombo with multiSelect true)。

我有两个按钮添加和更新。

当我选择网格中的任何行并按下更新时,在该确切位置开始划线。在更新按钮代码中,我将EditPartCombo的multiselect属性设置为false,但不知何故它没有反映。

更新代码按钮:

{
text: 'Update Press',

handler: function(btn){

var grid = btn.up('grid');
var selection = grid.getSelectionModel().getSelection();


if(selection.length > 0){

combo = Ext.getCmp('EditPartCombo');
combo.multiSelect = false;
delete combo.picker;
combo.createPicker();
combo.reset();

var rowEditing = grid.getPlugin('RowEditPlugin');
var rowno = grid.store.indexOf(selection[0]);
rowEditing.cancelEdit();

rowEditing.startEdit(rowno, 1);  
}

else{ Ext.Msg.alert('Error' , 'Please Select a row to Update'); } 

}

当我检查组合时,在firebug中 - 它显示multiSelect为false但仍然可以选择多个值。

不确定我做错了什么?

请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果在创建组件后创建配置值,则无法保证应用此值。对于某些配置选项,它是,而对于其他配置选项,它不起作用。

我建议您使用Ext.create组合框,然后在此时注入此multiSelect配置。对于一个按钮,就像这样,您可以在启用multiSelect的情况下创建它,并为另一个按钮禁用。