Ich möchte eine Schaltfläche in der Header-Facette einer Primafaces-Datentabelle aktualisieren und es funktioniert nicht. Ich habe den Knopf außerhalb der Datentabelle kopiert, alles funktioniert gut.Primesurfaces Datentabelle Update in f: facet name = "header" funktioniert nicht
Die Aktualisierung sollte stattfinden, wenn das Filterereignis der Datentabelle ausgelöst wird. Ich aktualisiere explizit die Datentabelle, den äußeren und den inneren Knopf.
Es ist beabsichtigt, eine Schaltfläche mit einem Symbol anzuzeigen, wenn kein Filter festgelegt ist, und ein anderes Symbol, wenn ein Filter verwendet wird. In diesem Beispiel habe ich den Anwendungsfall vereinfacht: Wenn kein Filter verwendet wird, gibt es ein Open-Lock-Symbol. Wenn ich etwas in einen Filter eintippe, sollte ein Closed-Lock-Symbol angezeigt werden. Um die Sperre aufzuheben, muss man auf die Schaltfläche klicken (ich habe das Löschen des Filters in der Datentabelle nicht implementiert).
Von dem, was ich verstehe, verwende ich die richtige ID der Schaltfläche in der Kopfzeile. Also ich weiß nicht, warum das nicht funktioniert?
Ich bin mit mojarra 2.2 und primefaces 6.
<h:form id="id_form">
<p:dataTable
id="id_table"
value="#{stateController.names}"
var="currentName">
<p:ajax
event="filter"
listener="#{stateController.markLocked()}"
update="id_table id_form:id_table:id_button_inside id_form:id_button_outside"/>
<p:column
filterBy="#{currentName}"
filterMatchMode="contains">
<f:facet name="header">
<p:commandButton
id="id_button_inside"
action="#{stateController.markUnlocked()}"
icon="#{stateController.locked ? 'ui-icon-locked' : 'ui-icon-unlocked'}"
update="id_form"/>
</f:facet>
<h:outputText value="#{currentName}" />
</p:column>
</p:dataTable>
<p:commandButton
id="id_button_outside"
action="#{stateController.markUnlocked()}"
icon="#{stateController.locked ? 'ui-icon-locked' : 'ui-icon-unlocked'}"
update="id_form"
/>
</h:form>
Ich habe auch versucht, eine Schaltfläche in einer separaten Spalte zu setzen. Mit dieser Schaltfläche (die in jeder Zeile der Datentabelle angezeigt wird) funktioniert auch alles.
Try-Taste einzuwickeln in '' und aktualisieren: '
Artem
Hallo @Artem, Entschuldigung für die späte Antwort. Ich habe es mit dem ' ' um den Button versucht, aber es ist das gleiche Ergebnis wie ohne das Panel :-( –
Filou