我已经实现了org.primefaces.model.SelectableDataModel
。
现在,当基于SelectableDataModel
渲染我的<p:dataTable>
时,我使用以下方式添加了一个复选框列:
<p:column selectionMode="multiple" />
对于某些行,基于行的某些属性,我不想出现复选框。
我无法找到一种方法来实现这一点。是否可以在Prime Faces功能之外实现?
我已经实现了org.primefaces.model.SelectableDataModel
。
现在,当基于SelectableDataModel
渲染我的<p:dataTable>
时,我使用以下方式添加了一个复选框列:
<p:column selectionMode="multiple" />
对于某些行,基于行的某些属性,我不想出现复选框。
我无法找到一种方法来实现这一点。是否可以在Prime Faces功能之外实现?
<p:dataTable disabledSelection="#{car.color =='Black'}" ... >
对于我来说,使用PF 5.1可以正常工作,无需操作列样式类。
<p:column selectionMode="multiple" style="width:18px"
disabledSelection="#{car.color =='Black'}"
styleClass="#{car.color =='Black' ? 'selectionDisabled':''}"/>
td.selectionDisabled .ui-chkbox{
display: none;
}
我可以确认,在dataTable上放置disabledSelection属性对于primefaces 6.1是有效的,就像user4165984所说的那样。
<p:dataTable disabledSelection="#{car.color =='Black'}" ... >
或者
<p:dataTable disabledSelection="#{car.disabled}" ... >
只有在想要添加一些花哨的 CSS 魔法以执行更多操作而不仅仅是禁用时,才需要设置样式类。
从Primefaces 5.2开始,由maciek和planetjones建议的p:column的disabledSelection属性不会禁用复选框。
应该像user4165984建议的那样将disabledSelection属性插入到p:datatable标记中,或者如此处所述。