在 extJS 中为组合框动态设置 multiSelect

Dynamically setting multiSelect for combobox in extJS

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

我有一个包含三列 ID、名称、关联部件的网格。

我启用了 Rowediting 插件,ID 是文本字段 (EditID),名称是文本字段 (EditName),关联部分是组合框 (EditPartCombo with multiSelect true)。

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

当我 select 网格中的任何行并按更新时,行编辑将从该确切位置开始。在“更新”按钮代码中,我将 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 但我仍然能够 select 多个值。

不确定我做错了什么?

请帮忙。

提前致谢。

如果您在创建组件后更改配置值,则不保证应用该值。对于某些配置选项,它是和其他它不工作。

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