Y at-il un moyen de supprimer la case à cocher Sélectionner tout dans l'en-tête de la p: datatable.Supprimer tout sélectionner dans Primefaces datable
J'ai besoin d'une case à cocher sur la ligne individuelle mais pas sur l'en-tête.
Y at-il un moyen de supprimer la case à cocher Sélectionner tout dans l'en-tête de la p: datatable.Supprimer tout sélectionner dans Primefaces datable
J'ai besoin d'une case à cocher sur la ligne individuelle mais pas sur l'en-tête.
Par exemple:
<h:form id="form">
<p:dataTable id="cars" rowIndexVar="idx" ...>
<p:column selectionMode="multiple" style="width:2%" />
</p:dataTable>
</h:form>
Primefaces ajouter le suffixe par défaut _head
à en-tête de datatable, dans l'exemple: en-tête de datatable aura id cars_head, vous pouvez désactiver select all checkbox
via css .ui-chkbox-box.ui-widget.ui-corner-all.ui-state-default
est le style de case à cocher de toutes case à datatable .
Si vous utilisez 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>
vous devez ajouter cette configuration web.xml
à utiliser '-' dans l'id du composant:
<context-param>
<param-name>javax.faces.SEPARATOR_CHAR</param-name>
<param-value>-</param-value>
</context-param>
Ce que vous pouvez faire est ci-dessous:
Ajoutez le fichier ci-dessous dans votre fichier default.css:
.table-no-select-all .ui-chkbox-all {
display: none !important;
}
Et puis dans votre Facelet, reportez-vous que, comme ci-dessous:
<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>
Merci.
J'ai réussi à faire cela en utilisant p: columnGroup pour spécifier les en-têtes.
<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>
Si vous changez d'avis et que vous voulez que la case à cocher selectAll à afficher, vous devez changer
<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>
Cela fonctionne très bien:
.ui-chkbox.ui-chkbox-all.ui-widget {
display:none !important;
}
Cela fonctionne pour moi n Primefaces 6,0
.ui-widget-header div.ui-chkbox.ui-widget { display: none !important; }
j'ai pu y parvenir en remplaçant .ui-chkbox-all {display: none importante;} mais est appliquée à tous les toutes les tables. Est-il possible de l'appliquer à une table en particulier? – KCP
non, il s'applique uniquement pour datatable avoir id 'cars'! –