下面是我打算在xpages中做的事情。
当我在编辑框中输入内容,然后单击按钮,组合框会显示相关信息。
这是xpage的设计,有一个编辑框,一个按钮和一个组合框。编辑框使用会话范围变量,按钮用于部分刷新组合框。组合框根据编辑框值显示相关的值。
<?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,但它需要精确的值才能进行查找。
如何使组合框返回相关信息取决于编辑框的值。
感谢您的建议。谢谢。
发布于 2017-02-20 19:04:30
使用视图的getAllEntriesByKey()并将参数exact设置为false,以获取以给定键开头的所有条目(在您的示例中为"apple")。
发布于 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
<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>https://stackoverflow.com/questions/42342471
复制相似问题