dojo dijit.form.筛选使用子字符串搜索选择

qlckcl4x  于 2022-12-16  发布在  Dojo
关注(0)|答案(4)|浏览(158)

filteringSelect非常接近我的需求。我尝试过很多方法来做我想做的事情,但是作为一个dijit初学者,我从来不知道我是否走对了方向。
当我开始键入FilteringSelect时,我只能看到以我键入的内容开头的选项。
我需要的是查看包含我在任何地方键入的内容的任何选项。例如"*" + value + "*"上的查询
因此,如果有“苹果”,“香蕉”和“橙子”,我键入“e”,我应该看到“苹果”和“橙色”。如果可能的话,用搜索字符串强调:“应用e",“橙色e
我想我需要一些聪明的数据存储,但无论我走到哪里都像是死胡同。我是错过了什么,还是应该用完全不同的方式来做这件事?

ndh0cuux

ndh0cuux1#

要使用queryExpr属性:

var f = new dijit.form.FilteringSelect({
 ...
 queryExpr: "*${0}*",
 ...
}, node);

请注意${0}前后的 *。

oo7oh9g9

oo7oh9g92#

嘿!您需要将queryExpr="${0}”添加到filteringselect组件。
默认情况下,它是${0},表示它搜索以您键入的内容开头的字符串。
作为对其他人的提示,在JSP中,我不得不将查询表达式更改为queryExpr="
${0}*”。

68bkxrlz

68bkxrlz3#

在我们的项目中,我们通过dojo.data.util.filter覆盖patternToRegExp方法的补丁解决了这个问题。

pgccezyw

pgccezyw4#

经过大量的尝试,我可以让它运行,马达提示是正确的,但错过了 * 之前和之后。正确的queryStr(在JSP中)是'*\${0}*'

相关问题