PrimeFaces Tabelle mit Daten In einer Zelle Bearbeiten : ich kann nicht das bearbeitete Objekt
Ich experimentiere mit DataTable - Zelle Bearbeiten, wie gezeigt, im PrimeFaces showcase. Ich habe geändert, die Facelets-code als Folge dieser Frage: primefaces in-cell-Bearbeiten nicht aktualisieren von Daten in Datenbank, weil die <p:ajax event="cellEdit">
nicht, aktualisieren Sie die gesamte Tabelle mit Daten.
<h:form id="form">
<p:outputPanel id="testContainer" deferred="true">
<p:growl id="messages" showDetail="true" />
<p:remoteCommand name="onCellEdit" action="#{articlesbean.onCellEdit()}" update=":form:messages" />
<p:dataTable id="cars" var="car" value="#{articlesbean.LMatpilotaccess1}" editable="true" editMode="cell" widgetVar="carsTable" update=":cars">
<p:ajax event="cellEdit" oncomplete="onCellEdit()" />
...
</p:dataTable>
</p:outputPanel>
</h:form>
Remote Befehl Aktion-Methode ist definiert wie folgt:
public void onCellEdit(CellEditEvent event) {
Object oldValue = event.getOldValue();
Object newValue = event.getNewValue();
if(newValue != null && !newValue.equals(oldValue)) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
Jedoch, diese Methode wird nie aufgerufen, und die folgende Ausnahme ausgelöst:
javax.el.MethodNotFoundException: Method not found: com.pfe.controller.ArticlesBean@1bb3a11.onCellEdit()
Wenn ich entfernen Sie die CellEditEvent
argument, dann funktioniert es. Aber ich brauche den alten und den neuen Wert. Wie kann ich Vorgehen?
InformationsquelleAutor Bellil Med Samouel | 2013-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese
Und
Werden Sie nicht in der Lage zu führen Sie die
!newValue.equals(oldValue)
- test-Vergleich, aber Sie werden in der Lage sein, um erhalten Ihre Antwort.Vergessen die
p:remoteCommand
als außerhalb derp:dataTable
Sie haben nicht den 'gewünschten'CellEditEvent
.Wenn für die gleiche Tabelle, die Sie haben, um zu zeigen, einige Berechnungen, die in dieser Zelle, Sie sollten es aus ein p:remoteCommand. Fügen Sie einfach
oncomplete="onCellEditTableComplete()"
und führen Sie das update aus, der außerhalb der TabelleInformationsquelleAutor Forjap
Versuchen, dies zu tun:
[]'s
InformationsquelleAutor user2376139