Ich benutze Primefaces 5.3, und ich fülle eine Datentabelle mit einigen Datensätzen aus der Datenbank, wenn die Länge der Datensätze ist niedriger als 10 Ich vervollständige es mit leeren Datensätzen, so dass die Datentabelle immer 10 Zeilen.Deaktivieren Sie die Auswahl in Datentabelle
Meine Datentabelle sieht wie folgt aus:
<p:dataTable id="dataTable"
editable="true" editMode="cell"
value="#{beanPlanningl.getListPlanningSalle(entry, 1)}"
var="planning"
selectionMode="single"
selection="#{beanPlanning.selectedPlanning}"
rowKey="#{planning.id}"
sortBy="#{planning.heureDebut}"
>
Also, was ich will ist die Auswahl auf Zeilen zu deaktivieren, die die leeren Datensätze hat.
Wie kann ich das tun?
PS: planning.id
entspricht 0 in leeren Datensätzen.
Edit:
Ich vergaß zu erwähnen, dass ich bereits verwendet rendered
, wie folgend:
<p:column >
<p:cellEditor rendered="#{planning.id != 0}">
<f:facet name="output"> <h:outputText value="#{planning.heureDebut}" /></f:facet>
<f:facet name="input">
<p:inputMask mask="99:99" value="#{planning.heureDebut}"
required="true" maxlength="4"
requiredMessage="Heure de début : vous devez indiquer une valeur."
validatorMessage="Heure de début non valide.">
<f:validateRegex pattern="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/>
</p:inputMask>
</f:facet>
</p:cellEditor>
</p:column>
aber dies nur verhindert, dass Zellen bearbeiten, aber sie können immer gewählt werden.
Edit 2:
Ich versuchte disabledSelection
jetzt verwende ich Zeilen nicht auswählen können, aber Zellen kann immer ausgewählt werden, bevor ich disabledSelection
verwendet:
wie Sie kann ich sehen Wählen Sie Zeilen und beim Schweben werden sie farbig.
und dann, wenn ich disabledSelection
verwendet:
Jetzt schwebt nicht funktioniert für leere Zeilen und Selektion auf Zeilen als gut, aber die Zellen können immer gewählt werden, so dass kein Ich muß nur verhindern, dass von der Verabredung.
Ich bemerkte, dass wenn die Zelle ausgewählt ist, zwei CSS-Klassen hinzugefügt werden: ui-state-highlight ui-cell-editing
.
haben Sie versucht, 'rendred' zu' dataTable' hinzufügen?!? –
wird es so sein 'gerenderten =" # {YourManagedBean.yourCondition} "' Vergessen Sie nicht, die 'dataTable' zu aktualisieren, wenn Sie den' rendred' Zustand Wert ändern –
@YagamiLight ja ich tat, sonst wären meine Zellen editierbar, wenn Ich benutze Rendred Ich verhindere das Bearbeiten von Zellen, aber ich kann sie immer noch auswählen. –