Kat*_*opo 12 jsf autocomplete primefaces jsf-2
我有一个关于Primefaces自动完成的问题.Rigth现在我正在使用自动完成中所选值的属性值更新字段,如下所示:
这是我的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>
Run Code Online (Sandbox Code Playgroud)
这是我的支持豆:
public void handleSelect(SelectEvent event) {
ProducteFitosanitari p=(ProducteFitosanitari)event.getObject();
setResgistre(Integer.toString(p.getNumRegistre()));
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但现在我正在尝试使用空字符串的id"text"更新outputText,当自动完成的值为空时.
如何捕获p:autoComplete
清空时触发的事件?
Dan*_*lor 26
Primefaces autoComplete生成2个事件:"change"和"itemSelect",用于更改其内容的两种方法:键入或从下拉列表中选择.所以你需要注册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>
Run Code Online (Sandbox Code Playgroud)
您还需要第二个服务器方法签名:
public void action(AjaxBehaviorEvent event)
Run Code Online (Sandbox Code Playgroud)
用于捕获"变化"事件.
相反的event
,你可以使用onstart
属性与JavaScript的运行...更多选项,p:ajax
你会发现在Primefaces用户指南,小节"AjaxBehavior"中找到.
归档时间: |
|
查看次数: |
33841 次 |
最近记录: |