大家好,想知道你们是否可以帮助我,
我有一个<p:panelGrid columns="2">
,我想做的一件事就是如果国家是联合王国然后显示邮政编码行,但是对于所有其他国家/地区都不显示,我想用这个用户做这个必须按任何按钮
<p:outputLabel value="#{bundle.country}" for="Countries" />
<p:selectOneMenu id="Countries"
value="#{bean.addressToCreate.country}"
valueChangeListener="#{country.countryLocaleCodeChanged}"
filter="true"
filterMatchMode="startsWith">
<f:selectItems value="#{country.countryInMap}" />
</p:selectOneMenu>
<p:outputLabel value="#{bundle.labelPostcode}" for="Postcode" />
<p:inputText id="Postcode"
validator="PostcodeValidator"
value="#{bean.addressToCreate.postcode}"
title="#{bundle.labelPostcode}"
required ="True"
requiredMessage="#{bundle.requiredPostcode}" />
以上目前是我的代码,但我想知道如何做到这一点所以任何帮助将不胜感激,国家列表存储在支持bean
谢谢你们
答案 0 :(得分:2)
您可以将rendered
属性用于此目的。它允许您根据一个或多个条件渲染组件。
<p:selectOneMenu id="Countries" value="#{bean.addressToCreate.country}" valueChangeListener="#{country.countryLocaleCodeChanged}" filter="true" filterMatchMode="startsWith">
<p:ajax update="postcodePanel" event="valueChange"/>
<f:selectItems value="#{country.countryInMap}" />
</p:selectOneMenu>
<p:outputLabel value="#{bundle.labelPostcode}" for="Postcode" />
<p:outputPanel id="postcodePanel">
<p:inputText rendered="#{bean.addressToCreate.country=='use your own spelling for UK here'}" id="Postcode" validator="PostcodeValidator" value="#{bean.addressToCreate.postcode}" title="#{bundle.labelPostcode}" required ="True"
requiredMessage="#{bundle.requiredPostcode}" />
</p:outputPanel>
在您的情况下,由于您有valueChangeListener,您可以从那里以编程方式更新outputPanel,请参阅RequestContext。