我已经实现了org.primefaces.model.SelectableDataModel
。
现在,当基于SelectableDataModel
渲染我的<p:dataTable>
时,我使用添加了一个带有复选框的列
<p:column selectionMode="multiple" />
对于某些行,我不希望根据该行的某些属性显示复选框。
我想不出办法做到这一点。是否可以使用开箱即用的Prime Faces功能?
您可以禁用复选框:
<p:column selectionMode="multiple" style="width:18px"
disabledSelection="#{car.color =='Black'}"
styleClass="#{car.color =='Black' ? 'selectionDisabled':''}"/>
但是,复选框现在已禁用,可见。使用CSS:隐藏禁用复选框
td.selectionDisabled .ui-chkbox{
display: none;
}
我建议使用:
<p:dataTable disabledSelection="#{car.color =='Black'}" ... >
对我来说,它适用于PF 5.1。无需操作列styleClass。
我可以确认,根据user4165984,在dataTable上放置disabledSelection属性适用于素数面6.1。
<p:dataTable disabledSelection="#{car.color =='Black'}" ... >
或
<p:dataTable disabledSelection="#{car.disabled}" ... >
只有当你想添加一些花哨的css魔法来做更多的事情而不仅仅是禁用时,才需要设置样式类。
从Primefaces 5.2开始,maciek和planetjones建议的p:column的disabledSelection属性不会禁用复选框。
disabledSelection属性应该插入到p:datatable标记中,如user4165984所建议的或此处所述。