首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合框返回的相关信息取决于编辑框的值

组合框返回的相关信息取决于编辑框的值
EN

Stack Overflow用户
提问于 2017-02-20 18:45:18
回答 2查看 73关注 0票数 1

下面是我打算在xpages中做的事情。

当我在编辑框中输入内容,然后单击按钮,组合框会显示相关信息。

这是xpage的设计,有一个编辑框,一个按钮和一个组合框。编辑框使用会话范围变量,按钮用于部分刷新组合框。组合框根据编辑框值显示相关的值。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText id="inputText1" value="#{sessionScope.itemname}"></xp:inputText>
<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="partial" refreshId="comboBox1">
    </xp:eventHandler></xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:comboBox id="comboBox1">
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:var SetFirstValueBlank = @Text("");
return SetFirstValueBlank;              
}]]></xp:this.value>
    </xp:selectItems>
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:var searchitem= getComponent("inputText1").getValue();
var result = @DbLookup(@DbName(),"itemListView", searchitem,1 ); 
return result;}]]></xp:this.value>
    </xp:selectItems>
</xp:comboBox>
</xp:view>

假设在视图中,它有许多项,如苹果、苹果片、苹果汁、苹果派、鱼、橙子等。

当我运行程序时,我准确地输入了苹果派,组合框可以显示确切的值(苹果派)供我选择,但如果我只输入appl (而不是确切的值),组合框将不会显示任何内容。事实上,我认为组合框会显示苹果、苹果片、苹果汁和苹果派供我选择,但结果让我知道我错了。

我修改了代码,我猜组合框不会返回任何可供选择的内容,因为我使用了@DbLookup,所以和@DbLookup需要确切的值,所以组合框不会显示任何内容。

我选择使用组合框的原因是它只允许用户选择一个值。

我考虑使用@DbColumn,但它将返回视图列中的所有值,因此我使用@DbLookup,但它需要精确的值才能进行查找。

如何使组合框返回相关信息取决于编辑框的值。

感谢您的建议。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-02-20 19:04:30

使用视图的getAllEntriesByKey()并将参数exact设置为false,以获取以给定键开头的所有条目(在您的示例中为"apple")。

票数 1
EN

Stack Overflow用户

发布于 2017-02-21 03:51:54

您是否考虑过使用在一个控件中提供此类行为的控件,而不是使用inputText +组合框?

如果您能够使用扩展库,您可以使用dojo filteringselect控件或dojo combobox控件。

两者都很相似,但是对于dojo过滤select,您必须从给定的选择列表中选择一个值。对于dojo combobox,您还可以键入任何单词,即使它不在列表中

下面是布拉德·巴拉塞蒂斯的博客https://www.google.com.au/amp/s/xcellerant.net/2013/09/18/xpages-dojo-filtering-select/amp/?client=safari中的一个例子

默认情况下,条目与‘start with’样式匹配,因此‘派’不会匹配‘苹果派’,但'app‘会匹配。

如果您希望筛选select匹配单词的任何部分,则可以按如下方式设置queryExpr

代码语言:javascript
复制
<xe:djFilteringSelect id="djFilteringSelect1" value="#{viewScope.myvalue}" autoComplete="false">
    <xe:this.queryExpr><![CDATA[${javascript:"*$\{0}*"}]]></xe:this.queryExpr>
    <xp:selectItems id="selectItems1" value="#{myBean.mySelectItems}"/>
</xe:djFilteringSelect>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42342471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档