dojo 如何使用XPages中djFilteringSelect控件的queryExpr属性设置查询模式

u91tlkcl  于 2023-02-17  发布在  Dojo
关注(0)|答案(1)|浏览(350)

我正在尝试调整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>

htrmnn0y

htrmnn0y1#

djFilteringSelect只是Dojo FilteringSelect组件的一个 Package 器,因此queryExprsearchExpr只是用来传递底层(客户端)JavaScript代码。因此,对于文档,Dojo站点是一个很好的来源。根据API文档,*${0}*应该做你想做的事情(https://dojotoolkit.org/api/?qs=1.6/dijit/form/FilteringSelect)。文档讨论了与highlightMatch结合来定义突出显示的内容。

相关问题