Ich habe eine Oberflächenname p:dataTable
mit InCell-Bearbeitung aktiviert und möchte den RowEditor auslösen / aktivieren für die neu hinzugefügte Zeile.
Auszug aus XHTML
%Vor%Hier ist, was ich bisher für die Bean-Methode :
habe %Vor%ich weiß es nicht
RowEditEvent(UIComponent component, Behavior behavior, Object object)
Ich habe die Methode execute (..) der Klasse RequestContext in meiner create-Methode verwendet. Dies erlaubte mir, zuerst den Index der Zeile zu berechnen, um in den Bearbeitungsmodus zu gelangen und ihn dynamisch in das Javascript einzufügen:
%Vor%Hoffe, das hilft.
Sie können der dataTable und einer JavaScript-Funktion in der Befehlsschaltfläche eine eindeutige styleClass hinzufügen:
Also füge zur Tabelle hinzu:
%Vor%Und zum Knopf:
%Vor%Und Ihr Code sieht so aus:
%Vor%Diese Lösung zielt darauf ab, ein paar Nachteile der ursprünglichen Antwort zu beheben:
%Vor%Die obige Anweisung ruft alle "tr" -Elemente ab, die (auf jeder Ebene) von Elementen mit der Klasse ".ui-datatable-data" abstammen. Die möglichen Probleme damit sind:
Am Ende war ich:
%Vor%Dieser Selektor sagt - holt das letzte "tr" -Element, das ein direktes Kind eines Elements mit der Klasse ".ui-datatable-data" ist, das ebenfalls ein Nachkomme des Elements mit ist ID "Tabelle" in der Form "tableForm". Mit anderen Worten, Sie können jetzt mehrere p: -Databases haben, und alle enthalten beliebige Komponenten, die HTML-Tabellen rendern.
Versuchen Sie Folgendes:
%Vor%hat gut funktioniert, egal wie viele Databases auf derselben Seite sind.
Um dies zu lösen, ist es besser, styleClass zu verwenden, und da es zur Korrektur dieses Problems notwendig ist, Javascript zu verwenden, müssen Sie die html-Tags in Ihrem Browser überprüfen, da sie sich scheinbar mit den Versionen von primefaces ändern. Für Version 6.1 habe ich das auf meine Bean gelegt:
%Vor%und In meiner .xhtml habe ich das geschrieben:
%Vor%Tags und Links jsf-2 primefaces