2012-09-04 10 views
5

Devo usare p: selectonemenu e renderlo disabilitato, cioè dovrebbe essere inviato durante un post ma dovrebbe essere di sola lettura. Si prega di notare che NON voglio usare l'attributo disabilitato in quanto ciò impedirà la pubblicazione.Come posso rendere Primefaces selezionabile in stato disabilitato?

Ho letto su questo forum che questo può essere ottenuto utilizzando un campo nascosto, tuttavia non capisco come questo possa essere implementato. Apprezzerei se qualcuno là fuori potesse fornirmi un aiuto in tal senso.

<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}" /> 
+0

impostare l'attributo disabled su true – rags

+0

Spiacente, non avrei dovuto usare la parola "disabled" in quanto può essere interpretata come riferita all'attributo disabilitato. Quello che voglio dire è che voglio che sia in uno stato di sola lettura come descritto nel testo sopra. L'uso dell'attributo disabilitato significa che il valore non verrà pubblicato. – javaMS

+0

È interessante. Come si comporterà il componente? Sarà ancora pubblicato? Inoltre, qual è la differenza tra pe: blockui e p: blockui e quale dovrei usare? – javaMS

risposta

5

Ho letto su questo forum che questo può essere realizzato utilizzando un nascosto campo, però non capisco come ciò possa essere attuato.

Fai il <p:selectOneMenu> disabili, e creare un <p:inputText type="hidden" value="#{bean.property}" />. L'attributo value deve essere uguale a <p:selectOneMenu>. Se necessario, utilizzare lo stesso convertitore.

In questo modo, <p:selectOneMenu> verrà disabilitato per l'utente, ma il valore verrà inviato dallo <p:inputText /> nascosto.


Ricordate che l'ingresso nascosto è ancora un <p:inputText />, e quindi ha bisogno di essere aggiornato quando il suo valore cambia. Assegna un ID e assicurati di aggiungerlo allo update del tuo <p:ajax />.

Problemi correlati