有没有办法删除 p:datatable 标题上的全选复选框。
我需要单个行上的复选框,而不是标题上的复选框。
这很好用:
.ui-chkbox.ui-chkbox-all.ui-widget {
display:none !important;
}
您可以执行以下操作:
在您的 default.css 文件中添加以下内容:
.table-no-select-all .ui-chkbox-all {
display: none !important;
}
然后在你的 facelet 中,参考如下:
<h:form id="form">
<p:dataTable id="cars" rowIndexVar="idx" styleClass="table-no-select-all" ...>
<p:column selectionMode="multiple" style="width:2%" />
</p:dataTable>
</h:form>
谢谢。
我设法通过使用 p:columnGroup 来指定标题来做到这一点。
<p:dataTable id="selectByPotentialTable" var="replacementByPotential"
widgetVar="selectByPotentialTable"
value="#{kmSelectByPotentialBean.allReplacementPrintersViewModel}"
selection="#{kmSelectByPotentialBean.selectedByPotentialReplacement}">
<p:columnGroup type="header">
<p:row>
<p:column/>
<p:column headerText="Printer Model"/>
</p:row>
</p:columnGroup>
<p:column selectionMode="multiple" style="width:2%;text-align:center"/>
<p:column>
#{replacementByPotential.name}
</p:column>
</p:dataTable>
如果您改变主意并希望显示 selectAll 复选框,则需要更改
<p:columnGroup type="header">
<p:row>
<p:column/>
<p:column headerText="Printer Model"/>
</p:row>
</p:columnGroup>
至
<p:columnGroup type="header">
<p:row>
<p:column selectionMode="multiple" style="width:2%;text-align:center"/>
<p:column headerText="Printer Model"/>
</p:row>
</p:columnGroup>
例如:
<h:form id="form">
<p:dataTable id="cars" rowIndexVar="idx" ...>
<p:column selectionMode="multiple" style="width:2%" />
</p:dataTable>
</h:form>
Primefaces为数据表_head
的表头添加默认后缀,例如:数据表的表头将具有id cars_head,因此您可以select all checkbox
通过css
禁用.ui-chkbox-box.ui-widget.ui-corner-all.ui-state-default
数据表中所有复选框的复选框样式。
如果您使用JSF 2.0
:
<style type="text/css">
#form-cars_head .ui-chkbox-box.ui-widget.ui-corner-all.ui-state-default{
display:none !important;
}
</style>
您需要添加此配置以web.xml
在组件的 id 中使用“-”:
<context-param>
<param-name>javax.faces.SEPARATOR_CHAR</param-name>
<param-value>-</param-value>
</context-param>
这适用于 Primefaces 6.0
.ui-widget-header div.ui-chkbox.ui-widget { display: none !important; }