6

我需要使用 p:selectonemenu 并将其禁用,即它应该在发布期间提交,但它应该是只读的。请注意,我不想使用 disabled 属性,因为这会阻止发布。

我在这个论坛上读到这可以通过使用隐藏字段来实现,但是我不明白如何实现。如果有人可以在这方面为我提供一些帮助,我将不胜感激。

<p:inputText id="cpr" value="#{customerbean.customer.cpr}">
    <p:ajax event="change" listener="#{customerbean.fetchCustomerDatafromCBS}" update="nationality address passportno name nationality dob address mailingaddress gender mobileno landlineno otherno email maritalstatus nochildren" immediate="true" >
         <f:param name="cprNumber" value="#{customerbean.customer.cpr}"/>
    </p:ajax>                 
    <f:validator validatorId="cprValidator" />                    
</p:inputText>   


<p:selectOneMenu id="gender" value="#{customerbean.customer.gender}" required="!#{customerbean.disabled}" requiredMessage="#{text['validation.error.required.gender']}" disabled="#{customerbean.disabled}">                      
    <f:selectItem itemLabel="Select One" itemValue="" noSelectionOption="true" />  
    <f:selectItem itemLabel="Male" itemValue="Male" />  
    <f:selectItem itemLabel="Female" itemValue="Female"  />  
</p:selectOneMenu>                

<p:inputText  type="hidden" value="#{customerbean.customer.gender}" />
4

1 回答 1

5

我在这个论坛上读到这可以通过使用隐藏字段来实现,但是我不明白如何实现。

使<p:selectOneMenu>禁用,并创建一个<p:inputText type="hidden" value="#{bean.property}" />. 该value属性必须与<p:selectOneMenu>. 如有必要,请使用相同的转换器。

这样,<p:selectOneMenu>将对用户禁用,但值将由 hidden 提交<p:inputText />


请记住,隐藏的输入仍然是 a <p:inputText />,因此需要在其值更改时对其进行更新。为其分配一个 ID,并确保将其添加到update您的<p:ajax />.

于 2012-09-05T13:44:04.123 回答