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

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

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

<p:column selectionMode="multiple" /> 

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

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

【问题讨论】:

    标签: jsf jsf-2 primefaces datatable selection


    【解决方案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 弄清楚您要提出什么建议。阅读stackoverflow.com/help/how-to-answer
          • 请解释我的回答不清楚的地方。我要求用户按照 user4165984 的建议直接使用 ,而不是上面最受支持/接受的答案。
          • 然后评论并支持另一个答案。无需再创建一个。
          猜你喜欢
          • 2016-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-07
          • 1970-01-01
          相关资源
          最近更新 更多