Wie fügt man in ExtJS eine benutzerdefinierte CSS-Klasse zu Datenrasterzeilen hinzu?

7

Wie füge ich benutzerdefinierte CSS-Klassen zu Zeilen in einem Datenraster hinzu ( Ext.grid.Panel )?

Ich verwende ExtJS 4.0.

    
Erik Allik 03.10.2011, 16:23
quelle

5 Antworten

21

Die Vorgehensweise besteht darin, viewConfig im Raster zu definieren:

%Vor%     
Erik Allik 04.10.2011, 16:55
quelle
8

In Ihrem initComponent() Ihrer Ext.grid.Panel verwenden Sie getRowClass() wie folgt:

%Vor%

Dies überschreibt im Grunde die Funktion getRowClass() des zugrundeliegenden Ext.grid.View , die zur Renderzeit aufgerufen wird, um benutzerdefinierte Klassen anzuwenden. Dann würde Ihre benutzerdefinierte CSS-Datei etwa Folgendes enthalten:

%Vor%     
LittleTreeX 03.10.2011 17:29
quelle
3

Sie könnten so etwas tun:

%Vor%

Natürlich könnten Sie den Aufruf getRow() für eine andere Zelle ersetzen, oder Sie könnten alle Zeilen durchgehen und sie entsprechend hinzufügen.

Und dann könntest du das zusätzlich zum Standard-CSS stylen, indem du Folgendes tust:

%Vor%

Es gibt auch eine private Methode von GridView namens addRowClass . Sie können damit auch eine Klasse zu Ihren Zeilen hinzufügen:

grid.getView().addRowClass(rowId, 'myClass');

%Vor%     
dmackerman 03.10.2011 17:10
quelle
1

Verwenden Sie den einfachsten Weg

In Ihrem Grid verwenden -

cls: 'myRowClass'

Dein CSS -

.myRowClass .x-grid-cell {Hintergrund: # FF0000! wichtig; }

    
Kanchan 20.05.2013 08:32
quelle
1

Wenn Sie die Klasse nach dem Laden der Daten ändern möchten, können Sie das folgendermaßen tun:

%Vor%

Hier ist rowIndex die ausgewählte Zeile, die Sie in einigen Event-Funktionen (wie "select") erhalten können. Mit diesem können Sie das CSS der Zeile ändern, nachdem Sie darauf geklickt haben.

    
Reed Grey 11.11.2014 17:23
quelle

Tags und Links