【问题标题】:How can I make Primefaces selectonemenu in disabled state?如何使 Primefaces selectonemenu 处于禁用状态?
【发布时间】:2012-09-04 05:02:31
【问题描述】:

我需要使用 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}" />

【问题讨论】:

  • 将 disabled 属性设置为 true
  • 对不起,我不应该使用“禁用”这个词,因为它可以解释为指的是禁用属性。我的意思是,我希望它处于上文所述的只读状态。使用 disabled 属性意味着该值不会被发布。
  • 这很有趣。组件将如何表现?还会发吗?另外,pe:blockui 和 p:blockui 有什么区别,我应该使用哪一个?
  • 我不明白如何让它工作?好像是一些与Ajax提交相关的功能?我需要在 ajax 提交后无限期禁用此字段。
  • 我想在我在字段中输入值、运行 Ajax 查询、获取信息并填充屏幕上的所有字段(包括 selectOneMenu 字段)后阻止它。除了不支持只读的 selectOneMenu 之外,我没有将所有其他字段设为只读的问题。

标签: jsf primefaces


【解决方案1】:

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

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

这样,&lt;p:selectOneMenu&gt; 将对用户禁用,但值将由隐藏的&lt;p:inputText /&gt; 提交。


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多