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

Posted

技术标签:

【中文标题】根据行条件隐藏 p:dataTable 选择复选框【英文标题】:Hide p:dataTable selection checkbox based on row criteria 【发布时间】:2013-02-04 06:14:40 【问题描述】:

我已经实现了org.primefaces.model.SelectableDataModel

现在,当基于SelectableDataModel 渲染我的<p:dataTable> 时,我使用以下方法添加一个带有复选框的列:

<p:column selectionMode="multiple" /> 

对于某些行,我不希望复选框出现,基于该行的某些属性。

我看不出有办法做到这一点。是否可以使用开箱即用的 Prime Faces 功能?

【问题讨论】:

【参考方案1】:

您可以禁用复选框:

<p:column selectionMode="multiple" style="width:18px" 
   disabledSelection="#car.color =='Black'" 
   styleClass="#car.color =='Black' ? 'selectionDisabled':''"/>

该复选框现在已禁用,但仍可见。使用 CSS 隐藏禁用的复选框:

td.selectionDisabled .ui-chkbox
display: none;

【讨论】:

【参考方案2】:

我建议使用:

<p:dataTable disabledSelection="#car.color =='Black'" ... >

对我来说,它适用于 PF 5.1。无需操作列 styleClass。

【讨论】:

【参考方案3】:

我可以确认根据 user4165984 将 disabledSelection 属性放在 dataTable 上适用于 primefaces 6.1。

<p:dataTable disabledSelection="#car.color =='Black'" ... >

<p:dataTable disabledSelection="#car.disabled" ... >

仅当您想添加一些花哨的 css 魔法来做更多的事情时才需要设置样式类。

【讨论】:

【参考方案4】:

从 Primefaces 5.2 开始,maciek 和 planetjones 建议的 p:column 的 disabledSelection 属性不会禁用复选框。

disabledSelection 属性应插入 p:datatable 标记中,如 user4165984 建议或提到的 here。

【讨论】:

请在回答时更清楚......它有助于 OP 弄清楚您要提出什么建议。阅读***.com/help/how-to-answer 请解释我的回答不清楚的地方。我要求用户按照 user4165984 的建议直接使用 ,而不是上面最受支持/接受的答案。 然后评论并支持另一个答案。无需再创建一个。

以上是关于根据行条件隐藏 p:dataTable 选择复选框的主要内容,如果未能解决你的问题,请参考以下文章

PrimeFaces Datatable单击分页链接取消选中所有复选框

根据行内容显示或隐藏 DGrid 选择器

我想根据条件在 ag-grid 中选择行(复选框)

Primefaces:从p:dataTable中的行选择中排除列

DataTables 1.10 全选复选框以选择所有行,甚至是带有分页的隐藏行

关于JSP页面中根据checked的值显示隐藏行的问题