Primefaces DataTable wird auf der Seite dupliziert
-
24-10-2019 - |
Frage
Überprüfung (zum Hinzufügen von Überprüfungen oder Kommentaren) Komponente in meiner Anwendung.
Wenn Sie Bewertung hinzufügen, das p:dataTable
wird mit Ajax aktualisiert.
Vor dem Hinzufügen von Bewertungen:
Nach dem Hinzufügen der ersten Bewertung
Seite aktualisieren (F5):
Nach dem Hinzufügen der zweiten Bewertung:
JSF:
<h:form onsubmit="return commValidator();">
<h:inputText value="#{comment.commentator}"/>
<h:inputTextarea value="#{comment.body}";"/>
<p:commandButton value="send" action="#{showProducts.addComment}" update="comms"/>
<p:dataTable id="comms" value="#{showProducts.comments}" var="com">
<p:column>#{com.commentator}(
<h:outputText value="#{com.postDate}">
</h:outputText>):
</p:column>
<p:column>#{com.body}</p:column>
</p:dataTable>
</h:form>
Das Problem ist p:dataTable
Die Komponente wird zweimal auf Seite angezeigt.
Nach einer neuen Überprüfung wurde das neu erstellt p:dataTable
angezeigt.
Wie man ... macht p:dataTable
bereits nach der Seite und einmal Zeit angezeigt?
Vielen Dank.
Lösung
p:dataList
Komponente löst dieses Problem auf
Es zeigt eine und neue Elem. wird zu einer bereits vorhandenen Liste hinzugefügt, anstatt eine neue Liste zu erstellen wie mit p:dataTable
!
Andere Tipps
Ich habe das gleiche Problem gestoßen: P: DataTable in Form ist dupliziert, jedes Mal, wenn ein Update (: Formular) erstellt wird.
Eine Möglichkeit, das Problem zu lösen, besteht darin, AP: OutputPanel als Hauptelement in der Form zu setzen, die alle anderen Elemente enthält. Wenn Sie einfach ein Update (: Formular: outputPanel) durchführen, wird die Tabelle aktualisiert, aber nicht mehr dupliziert.