[ExtJS] Suchen in einer ComboBox

Hallo zusammen,

ich habe auf meiner Seite eine ExtJs-ComboBox eingebaut, in der mehrere Daten vorhanden sind.
Momentan ist es so: wenn ich z.B. ein ‚a‘ eingebe, werden alle vorhandenen Daten so gefiltert, dass nur noch diejenigen mit ‚a‘ am Anfang auftauchen.
Ich möchte es aber gerne so anpassen, dass auch die Einträge angezeigt werden, die *irgendwo* ein ‚a‘ besitzen (so ähnlich wie bei SQL … LIKE „%a%“ …).

Hier ist mein bisheriger Code:

Ext.comboData.names = [['Peter', 'Paul', 'Amanda']];
 
 
var store = new Ext.data.SimpleStore({
 fields: ['name'],
 data: Ext.comboData.names
});
 

var combo = new Ext.form.ComboBox({ 
 name: '...',
 id: '...', 
 store: store, 
 displayField: 'name', 
 typeAhead: true, 
 mode: 'local', 
 forceSelection: false, 
 triggerAction: 'all', 
 emptyText: '-', 
 selectOnFocus: true, 
 applyTo: '...', 
 hiddenName: '...', 
 valueField: 'name'
});

Lässt sich das überhaupt irgendwie einbinden? Oder muss ich da ganz anders vorgehen?
Vielen Dank im Voraus :smile:

MfG, Schildi

Hallo Schildi,

kannte diese Lib noch gar nicht … recht interessant.
Habe mal nach RegExp gesucht und das in der ext-all-debug.js gefunden:


createValueMatcher : function(value, anyMatch, caseSensitive, exactMatch) {
if (!value.exec) {
var er = Ext.escapeRe;
value = String(value);

if (anyMatch === true) {
value = er(value);
} else {
value = ‚^‘ + er(value);
if (exactMatch === true) {
value += ‚$‘;
}
}
value = new RegExp(value, caseSensitive ? ‚‘ : ‚i‘);
}
return value;
},

Habe nicht weitergesucht und kann nicht sagen, wo diese Funktion aufgerufen wird.
Wenn der Parameter anyMatch auf true gesetzt wird, greift die Suche auf jeden Treffer, also nicht nur am Wortanfang.
Du kannst auch diese Zeile:
value = ‚^‘ + er(value);
in
value = er(value);
ändern.
Dann wird jeder Treffer zurückgegeben.

h♥rzlichen Gruß
Nitya