我正在尝试调整XPages中的djFilteringSelect控件,以便当用户键入查询时,它可以找到任何字符序列,而不仅仅是从开头。
因此,如果selectitems包含一个值"这是一个产品",我键入product,它应该是一个匹配项。默认情况下,它只从文本的开头搜索。
有一个queryexpr属性可以用于此目的,但缺少在xpages中使用的文档。我尝试了以下方法和许多其他方法,但无法使其工作。
<xe:this.queryExpr><![CDATA[#{javascript:"*{0}*"}]]></xe:this.queryExpr>
<xe:this.queryExpr><![CDATA[#{javascript:"$*{0}*"}]]></xe:this.queryExpr>
<xe:djFilteringSelect id="djFilteringSelect1">
<xp:selectItems id="selectItems2">
<xp:this.value><![CDATA[#{javascript:var products = @DbLookup("","LookUp", "Produkt", 2);
products = @Unique(@Trim(products));
return products.sort();}]]></xp:this.value>
</xp:selectItems>
</xe:djFilteringSelect>
这里是一个完整的例子,如果有人想复制/粘贴到一个新的XPage,我想输入"x"和条目"我的名字是x"应该显示
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:djFilteringSelect id="djFilteringSelect1">
<xp:selectItem itemLabel="my name is x"></xp:selectItem>
<xp:selectItem itemLabel="my name is y"></xp:selectItem>
<xp:selectItem itemLabel="my name is z"></xp:selectItem>
</xe:djFilteringSelect>
</xp:view>
1条答案
按热度按时间htrmnn0y1#
djFilteringSelect只是Dojo FilteringSelect组件的一个 Package 器,因此
queryExpr
和searchExpr
只是用来传递底层(客户端)JavaScript代码。因此,对于文档,Dojo站点是一个很好的来源。根据API文档,*${0}*
应该做你想做的事情(https://dojotoolkit.org/api/?qs=1.6/dijit/form/FilteringSelect)。文档讨论了与highlightMatch结合来定义突出显示的内容。