根据行条件隐藏p:dataTable选择复选框



我已经实现了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所建议的或此处所述。

相关内容

  • 没有找到相关文章

最新更新