尽管听起来没有任何意义,但如果我让它发挥作用就会发生......
我要做的是让组合什么都不做,什么都没做......所以我设法阻止它将记录添加到选定的记录列表中。但我无法找到阻止它将项目涂成蓝色的方法。 理解我正在尝试做的最好的方法是检查ExtJS文档页面中的实时预览,看看如果你在下拉列表中选择一个项目,它会变成蓝色,尽管它不会将它添加到selectedRecords列表。
以下是ExtJS文档页面的网址...
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.field.ComboBox
对于那些不熟悉该工具的人,只需在那里查找代码编辑器,粘贴此代码并单击实时预览。
// The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
});
// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose State',
store: states,
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
multiSelect:true,
renderTo: Ext.getBody(),
onListSelectionChange:function(){
console.log('Do nothing');
}
});
答案 0 :(得分:2)
这是你在找什么?
onListSelectionChange:function(){
this.picker.getSelectionModel().deselectAll();
}
在此处查看:http://jsfiddle.net/lontivero/5Ftrf/1/
<强>更新强> 如果您想保留以前选择的项目,可以试试这个。它只会阻止新的选择。
onListSelectionChange:function(){
var lastSelected = this.picker.getSelectionModel().lastSelected;
itemNode = this.picker.getNode(lastSelected || 0);
if (itemNode) {
this.picker.getSelectionModel().deselect(lastSelected );
}
}
在jsfiddle中:http://jsfiddle.net/lontivero/5Ftrf/2/