Interactive Grid – Nur die aktuelle Zeile aktualisieren

In meinem aktuellen Projekt benutze ich auf einer Seite ein Interactive Grid. Wenn man auf eine Zeile klickt, sprich diese selektiert, wird unterhalb des Grids ein Report angezeigt, der diesen Datensatz darstellt. Das Bearbeiten des Datensatzes wird dabei in einem modalen Dialog realisiert. Wenn dieser geschlossen wird, soll sich natürlich der Report inklusive der gerade selektierten Zeile im Grid aktualisieren.

Leider bleibt die Selektion nach einem Refresh des Grids nicht erhalten. Wenn man via JavaScript das Grid aktualisiert, sich vorher den ausgewählten Datensatz merkt, und anschließend diesen wieder markieren möchte, kommt man zu dem Problem, dass das Aktualisieren des Grids asynchron von statten geht. Und der auszuwählende Datensatz noch gar nicht da ist.

Da ich aber nur den einen Datensatz bearbeiten möchte, reicht es eigentlich aus, nur diese Zeile zu aktualisieren. Dazu bietet das IG eine entsprechende Methode per API an.

var myGrid = apex.region( "TEST_CASES_GRID" )
 .widget()
 .interactiveGrid("getViews")
 .grid;
myGrid.model.fetchRecords( myGrid.getSelectedRecords());

Das ganze klappt nur, wenn das IG über eine RowID verfügt.

Interactive Grid refresh Single Record

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere