gpt4 book ai didi

jsf - 捕获素面

change event (detect emptying)

转载 作者:行者123 更新时间:2023-12-04 00:19:24 25 4
gpt4 key购买 nike

我有一个关于 Primefaces 自动完成的问题。现在,我正在使用自动完成中所选值的属性值更新字段,如下所示:

这是在我的 xhtml 中:

<p:autoComplete
value="#{trFitoModel.selectedProducte}"
id="nomComercial"
completeMethod="#{trFitoBacking.completeProducte}"
var="producte" itemLabel="#{producte.nom}"
itemValue="#{producte}" converter="#{ProducteFitoConverter}"
forceSelection="true"
onkeyup="this.value = this.value.toUpperCase();">
<p:ajax event="itemSelect"
listener="#{trFitoBacking.handleSelect}"
update="text" global="false" />
<f:validator validatorId="qea.validators.EmptyFieldValidator" />
<f:attribute name="validationTitle" value=" NomComercial " />
</p:autoComplete>
</p:column>
<p:column>
<h:outputLabel>#{msgI18N.trFito}</h:outputLabel>
<h:outputText id="text"
value="#{traFitoBacking.resgistre}">
</h:outputText>
</p:column>

这是我的支持 Bean:
 public void handleSelect(SelectEvent event) {
ProducteFitosanitari p=(ProducteFitosanitari)event.getObject();
setResgistre(Integer.toString(p.getNumRegistre()));
}

这有效,但现在我试图在自动完成的值为空时使用空字符串更新 id "text"的 outputText 。

如何捕获 p:autoComplete 时触发的事件清空了吗?

最佳答案

Primefaces autoComplete 生成 2 个事件:“change”和“itemSelect”,用于更改其内容的 2 种方法:键入或从下拉列表中选择。所以你需要注册2 p:ajax 听众:

<p:autoComplete ... >
<p:ajax event="itemSelect" listener="#{bean.action}" process="@form"/>
<p:ajax event="change" listener="#{bean.action}" process="@form"/>
</p:autoComplete>

您还需要第二个服务器方法签名:
public void action(AjaxBehaviorEvent event)

用于捕获“更改”事件。

而不是 event您可以使用 onstart属性与 JavaScript 运行... 更多选项 p:ajax您可以在 Primefaces 用户指南的“AjaxBehavior”部分找到。

关于jsf - 捕获素面 <p :autoComplete> change event (detect emptying),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com