启用禁用数据表中的复选框

lam*_*eta 3 xhtml java-ee primefaces

Primefaces中是否有一种方法可以启用或禁用数据表中的复选框?现在我的数据表是这样的:

<p:dataTable id="dTable" var="tt" value="#{aBean.aList}" selection="#{aBean.selectedValue}" rowStyleClass="#{tt.state.intValue() le 1 ? 'active' : 'passive'}">
    <p:column selectionMode="multiple" />
    ...
</dataTable>
Run Code Online (Sandbox Code Playgroud)

但是这段代码只是将带有复选框的列与标题中的复选框放在一起.我希望根据辅助bean中的值呈现复选框.

Dil*_*dus 9

FWIW多年后......

在PF 5.x中,您知道在列中执行此操作的时间更长,您必须disabledSelection<p:datatable ...>标记中设置标准.

就像是 :

<p:datatable disabledSelection="#{myvar ne null}" ... >
Run Code Online (Sandbox Code Playgroud)

这花了我很多时间来弄清楚,因为经常提出问题(无处不在),而不考虑版本问题.这是我终于找到答案的地方.

Optimus Prime对PF社区论坛的回应


lam*_*eta 7

我在PF中找到了解决方案:http://forum.primefaces.org/viewtopic.php? f = 3&t = 14029使用rowstyleclass和css解决了这个问题:

XHTML:

<p:dataTable id="dTable" var="tt" value="#{aBean.aList}" 
                                  selection="#{aBean.selectedValue}" rowStyleClass="#{tt.state.intValue() le 1 ? 'active' : 'passive'}">                    

<p:column    selectionMode="multiple"/>
...
</dataTable>
Run Code Online (Sandbox Code Playgroud)

CSS:

.active{    
    background-image: none !important;   
}

.passive{
    background-color:gainsboro !important;
    background-image: none !important;
}

.passive td.ui-selection-column input {
       display:none;
    }
Run Code Online (Sandbox Code Playgroud)

这使用CSS启用/禁用命令按钮.