2017-10-23 4 views
0

Wie Rendern einer bestimmten Rasterzelle aus einem Raster in GXT (Java)?Wie man eine spezifische Gitterzelle (GXT) rendert?

Ich möchte den Ausdruck (als Zeichenfolge) aus den Zellen des Rasters validieren, wenn der Ausdruck aus der Rasterzelle eine ungültige Syntax hat, sollte der Hintergrund der entsprechenden Rasterzelle rot wechseln, ansonsten sollte der Hintergrund weiß bleiben.

Hier ist ein Beispiel alle Zellen für eine bestimmte Spalte zu machen:

getColumnModel().getColumn(cellColIndex).setCell(new AbstractCell<Object>() { 
     @Override 
     public void render(com.google.gwt.cell.client.Cell.Context context, Object value, SafeHtmlBuilder sb) { 
      sb.appendHtmlConstant("<div style=\"background-color:red;\">"); 
      sb.appendHtmlConstant(value.toString()); 
      sb.appendHtmlConstant("</div>"); 
     } 
    }); 

ich für eine bestimmte Zelle machen möchten. Gibt es eine Möglichkeit, das zu tun?

Antwort

1

Überprüfen Sie im CellRenderer, den Sie angezeigt haben, ob er rot angezeigt werden soll oder nicht (und wenn dies der Fall ist, verwenden Sie background-color basierend auf dieser Logik).

Wenn sich dieser Wert ändert, rufen Sie store.update (...) in der Zeile auf, die geändert werden soll, und bitten Sie das Raster, es erneut zu rendern und die Farbe zu aktualisieren.

Es gibt keine (gute) Möglichkeit, bereits gerenderte Zellen manuell zu modifizieren - dies ist beabsichtigt, da das Grid entscheiden könnte, dass ein Rendern stattfinden muss (Sortieren oder Filtern, Paging oder Scrollen), usw.), in diesem Fall wäre Ihr individuelles Styling verloren. Stattdessen aktualisieren Sie einfach die Logik der Zelle, um zu reflektieren, was Sie benötigen, und informieren Sie das Geschäft/Gitter, um zu aktualisieren, wenn sich die Daten ändern.

Verwandte Themen