Sep 15, 2015, 9:30 AM
[CLOSED] Implementing Non-CaseSensitive Regex in ComboBox
Hi
I'm trying implement this override but I'm getting an error message saying that me.queryFilter is undefined. Do I need to do something additional, other than include it as an override?
Jeff
I'm trying implement this override but I'm getting an error message saying that me.queryFilter is undefined. Do I need to do something additional, other than include it as an override?
Ext.form.field.ComboBox.override({
doQuery: function(queryString, forceAll, rawQuery) {
queryString = queryString || '';
// store in object and pass by reference in 'beforequery'
// so that client code can modify values.
var me = this,
qe = {
query: queryString,
forceAll: forceAll,
combo: me,
cancel: false
},
store = me.store,
isLocalMode = me.queryMode === 'local';
if (me.fireEvent('beforequery', qe) === false || qe.cancel) {
return false;
}
// get back out possibly modified values
queryString = qe.query;
forceAll = qe.forceAll;
// query permitted to run
if (forceAll || (queryString.length >= me.minChars)) {
// expand before starting query so LoadMask can position itself correctly
me.expand();
// make sure they aren't querying the same thing
if (!me.queryCaching || me.lastQuery !== queryString) {
me.lastQuery = queryString;
if (isLocalMode) {
// Querying by a typed string...
if (queryString || !forceAll) {
// Ensure queryFilter is enabled and set the new value
me.queryFilter.disabled = false;
me.queryFilter.setValue(me.enableRegEx ? new RegExp(queryString, me.caseSensitive ? '' : 'i') : queryString);
}
// Disable query value filter if no query string or forceAll passed
else {
me.queryFilter.disabled = true;
}
// Filter the Store according to the updated filter
store.filter();
} else {
// Set flag for onLoad handling to know how the Store was loaded
me.rawQuery = rawQuery;
// In queryMode: 'remote', we assume Store filters are added by the developer as remote filters,
// and these are automatically passed as params with every load call, so we do *not* call clearFilter.
if (me.pageSize) {
// if we're paging, we've changed the query so start at page 1.
me.loadPage(1);
} else {
store.load({
params: me.getParams(queryString)
});
}
}
}
// Clear current selection if it does not match the current value in the field
if (me.getRawValue() !== me.getDisplayValue()) {
me.ignoreSelection++;
me.picker.getSelectionModel().deselectAll();
me.ignoreSelection--;
}
if (isLocalMode) {
me.doAutoSelect();
}
if (me.typeAhead) {
me.doTypeAhead();
}
}
return true;
}
});
ThanksJeff
Last edited by Daniil; Sep 17, 2015 at 3:40 PM.
Reason: [CLOSED]