dijit.form.FilteringSelect with substring search
dijit.form.FilteringSelect is close to what I need. I've tried lots of ways开发者_如何学Python to do what I want, but being a dijit beginner I never know if I'm even going in the right direction.
When I start typing in a FilteringSelect, I only see the options starting with what I typed. Like a query on value + "*"
"*" + value + "*"
So if there is "Apple", "Banana" and "Orange", and I type "e", I should see "Apple" and "Orange". If possible, with the search string emphasized: "Apple", "Orange"
I think I need some clever data storage, but anywhere I go looks like a dead end. Am I missing something, or should I do this in a completely different way?
You want to use the queryExpr
attribute:
var f = new dijit.form.FilteringSelect({
...
queryExpr: "*${0}*",
...
}, node);
Notice the * before and after the ${0}.
Hey! You need to add queryExpr="${0}" to the filteringselect component.
By default, it's ${0}* , meaning it searches strings that start with what you typed.
As a hint for others, in JSP, I had to change the query expr. to queryExpr="\${0}" .
In our project we solved this problem with a patch to dojo.data.util.filter
overwriting patternToRegExp
method.
After a lot of time trying I could make it run, Mada tip was correct but miss the * before and after. The correct queryStr (in JSP) is '*\${0}*'
精彩评论