filteringSelect非常接近我的需求。我尝试过很多方法来做我想做的事情,但是作为一个dijit初学者,我从来不知道我是否走对了方向。
当我开始键入FilteringSelect时,我只能看到以我键入的内容开头的选项。
我需要的是查看包含我在任何地方键入的内容的任何选项。例如"*" + value + "*"
上的查询
因此,如果有“苹果”,“香蕉”和“橙子”,我键入“e”,我应该看到“苹果”和“橙色”。如果可能的话,用搜索字符串强调:“应用e",“橙色e”
我想我需要一些聪明的数据存储,但无论我走到哪里都像是死胡同。我是错过了什么,还是应该用完全不同的方式来做这件事?
4条答案
按热度按时间ndh0cuux1#
要使用
queryExpr
属性:请注意${0}前后的 *。
oo7oh9g92#
嘿!您需要将queryExpr="${0}”添加到filteringselect组件。
默认情况下,它是${0},表示它搜索以您键入的内容开头的字符串。
作为对其他人的提示,在JSP中,我不得不将查询表达式更改为queryExpr="${0}*”。
68bkxrlz3#
在我们的项目中,我们通过
dojo.data.util.filter
覆盖patternToRegExp
方法的补丁解决了这个问题。pgccezyw4#
经过大量的尝试,我可以让它运行,马达提示是正确的,但错过了 * 之前和之后。正确的queryStr(在JSP中)是
'*\${0}*'