如果值为true,如何显示行

时间:2013-12-03 01:09:07

标签: jsf primefaces

大家好,想知道你们是否可以帮助我,

我有一个<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

谢谢你们

1 个答案:

答案 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