2015-11-26 44 views
-1

我是新的两个JSF和Prime面孔。我想完成任务,我差不多完成了,但必须确定最终的要求。如何使用JSF中的数据库值有条件地呈现启用/禁用复选框?

以下是要求: 该任务的主要目标是显示与数据库值关联的启用/禁用复选框。 我也必须做排序和过滤值。

这是我试过的图片。 我可以显示布尔值或只是空的复选框或启用复选框。

[![在截图中,你可以看到,cmistes栏显示所有检查盒中禁用模式和其他两列启用,但禁用显示为我写不同的代码进行检查。] [1] [1]

这里是代码显示: 下面的代码只显示禁用复选框..

<p:column sortBy="#{dossier.cmistes}" width="85" filterBy="#{dossier.cmistes}" filterStyle="width:50px; font-size:10px;"> 
         <f:facet name="header">Cmistes</f:facet> 
         <h:selectBooleanCheckbox id="cmistes" disabled="#{dossierBean.dossier.cmistes}" styleClass="benefSelection" /> 
</p:column> 

这使代码显示复选框,但不是禁用..

<p:column sortBy="#{dossier.vbtaz}" width="85" filterBy="#{dossier.vbtaz}" filterStyle="width:50px; font-size:10px;"> 
          <f:facet name="header">vbtaz</f:facet> 
          <h:selectBooleanCheckbox id="vbtaz" checked = "true" rendered="#{dossier.vbtaz}" styleClass="benefSelection" /> 
</p:column> 

生成的获得者和安装者是:

private Boolean cmistes; //IND_CMISTES NUMBER(1,0) 
public Boolean getCmistes() { 
     return cmistes; 
    } 

    public void setCmistes(Boolean cmistes) { 
     this.cmistes = cmistes; 
    } 

任何建议? 谢谢。

+0

Juste删除'=='1'' –

+0

在primefaces中,Datatable有一个属性调用“选择”http://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml –

+0

@AlexandreLavoie。我删除了=='1'。输出只显示禁用的复选框。 –

回答

1

如果我正确理解您的问题,您希望显示所有复选框,但希望根据您的数据库数据启用或禁用它们。

首先,您正在使用rendered属性,它告诉服务器生成或不生成HTML代码。你想使用disabled属性是这样的:

<h:selectBooleanCheckbox id="cmistes" disabled="#{dossierBean.dossier.cmistes}" styleClass="benefSelection" /> 

还要注意== '1'被删除,因为你的方法已经返回一个布尔值,不要用一个字符串比较布尔预期正确的结果。

更多信息:

+0

@AIexandre ...试着用你提到的代码..在添加代码后...我可以看到只有所有复选框处于禁用模式..但我应该显示启用/禁用与数据值相关的两个值.. –

+0

@ K.kiran:您的评论包含错误的代码... – Kukeltje

+0

@Alexandre ..在终于我有一个使用禁用属性的输出......我知道我之前做过的错误。我用disabled =“#{dossierBean.dossier.cmistes}”而不是disabled =“#{dossier.cmistes}”。谢谢。 ....新问题,在 –

0

最后,这里是对上述问题,我只问了解决方案。

我使用了禁用属性来显示呈现/禁用的复选框。

<p:column sortBy="#{dossier.cmistes}" width="85" filterBy="#{dossier.cmistes}" filterStyle="width:50px; font-size:10px;"> 
      <f:facet name="header">Cmistes</f:facet> 
      <h:selectBooleanCheckbox id="cmistes" disabled="true" value="#{dossier.cmistes}" styleClass="benefSelection" /> 
    </p:column> 
    <p:column sortBy="#{dossier.vbtaz}" width="85" filterBy="#{dossier.vbtaz}" filterStyle="width:50px; font-size:10px;"> 
      <f:facet name="header">vbtaz</f:facet> 
      <h:selectBooleanCheckbox id="vbtaz" disabled="true" value="#{dossier.vbtaz}" styleClass="benefSelection" /> 
    </p:column> 

但是,如果我想显示在方框中打勾蜱符号,而不是灰色.. 任何sugestion?

+0

新问题。你是否试图给它一个价值? – Kukeltje

+1

请学习一些基本的html/css和jsf你犯了几个基本错误('checked'对于jsf不是一个好的属性,'gray'是因为它被禁用,被检查是不同的东西等等。) – Kukeltje

+0

@Kukeltje。谢谢你的建议.. –