ExtJs 4, Comment éviter xtype: « combo » effondrement quand déjà l'élément sélectionné cliqué?
-
24-10-2019 - |
Question
Je ComboBox
. Lorsque je clique sur le point de la liste élargie, ComboBox
sélectionnez cet élément et l'effondrement. Si je clique sur le point déjà sélectionné, il s'effondrer aussi.
Est-il un moyen de "stop" ComboBox
lorsque l'effondrement sélectionnez l'élément déjà sélectionné utilisateur?
PS: pour être bref, je veux ComboBox
à se comporter comme TimeField
http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html
UPDATE
Je ne solutions pas besoin que le travail ne marche pas au moins à IE7 et IE8 ..
La solution
Si vous voulez que le comportement:
Ext.form.field.ComboBox.override({
onItemClick: Ext.emptyFn
});
Autres conseils
var cb = new Ext.form.ComboBox({
// here is your local store
mode: 'local',
store: new Ext.data.SimpleStore({
fields: ['id', 'label'],
data: [
['1', 'One'],
['2', 'Two']
]
}),
listeners: {
'beforeselect': function (combo, record, index) {
// prevent collapsing if the same value is selected
if (record.data.label == combo.getRawValue()) return false;
}
}
});
Si c'est 3.3 que vous avez affaire, cela semble fonctionner:
Ext.form.ComboBox.override({
onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
return this.getValue() !== record.data[this.valueField || this.displayField];
})
});
Testé sur Chrome et IE8. Il empêche la fonction onSelect
appelée si la valeur actuelle correspond exactement à la valeur que vous essayez d'ensemble.