2015-12-10 7 views

Antwort

10

Die vorherige Antwort ist etwas veraltet ist (obwohl immer noch richtig und in Betrieb) und wir haben jetzt etwas mehr Kontrolle über die Styling des Gitters. Sie könnten getRowStyle(params) für diesen Job verwenden, so wie diese:

gridOptions.getRowStyle(params) { 
    if (params.data.myColumnToCheck === myValueToCheck) { 
     return {'background-color': 'yellow'} 
    } 
    return null; 
} 

Offensichtlich myColumnToCheck wäre die Spalte, die Sie Ihren Wert gegenüber sind die Überprüfung (dem gleichen Namen Eingabe im id/Feldeigenschaft des COLDEF Objekt) und myValueToCheck wäre der Wert, den die Spalte haben soll, um die Zeile gelb zu machen.

+0

Dies scheint nicht auf der ag-Grid-Site (http://angulargrid.com) dokumentiert zu sein, aber es funktioniert :) Viel besser, als jede Zelle einzeln stylen zu müssen! –

+1

Wissen Sie, wie Sie die ausgewählte Zeilenfarbe beibehalten würden, wenn diese Funktion aktiv ist? Ich habe festgestellt, dass ausgewählte Zeilen ihre Hintergrundfarbe nicht mehr ändern, wenn ein benutzerdefinierter getRowStyle aktiviert ist. – Jafin

+0

Kann getRowClass auf gridOptions nicht funktionieren. Bevorzugen Sie die CSS-Klasse für den Stil. – goodies4uall

0

Sie können die Hintergrundfarbe einer ganzen Zeile nicht in einem Befehl ändern. Sie müssen es über die cellStyle Callback-Setup in der columnDefs tun. Dieser Rückruf wird für jede Zelle in der Zeile aufgerufen. Sie müssen die Farbe der Zeile ändern, indem Sie die Farbe aller Zellen ändern.

Auch die folgenden Spaltendefinition

{ 
    headerName: "Street Address", field: "StreetAddress", cellStyle: changeRowColor 
} 

Sie müssen dies für alle Spalten tun.

Hier ist Ihre changeRowColor Funktion.

function changeRowColor(params) { 

    if(params.node.data[4] === 100){ 
     return {'background-color': 'yellow'};  
    } 

} 

Es ändert sich die Farbe einer Zeile, wenn der Wert der dritten Zelle 100

1

Antwort 2 ist korrekt, aber die Syntax ist falsch, und verursachte mir mehrere Probleme, um es zu sortieren. Versuchen, den Antwortcode 2 zu minimieren, zum Beispiel. Es hat funktioniert, aber es ist nicht die richtige Syntax, soweit ich sehen kann.

Hinweis kann diese inline erfolgen, oder mit einer externen Funktion, 2 verschiedene Möglichkeiten:

eigene Funktion:

vm.gridOptions = { 
    columnDefs: columnDefs, 
    getRowStyle: getRowStyleScheduled 
} 

function getRowStyleScheduled(params) { 
    if (params.selected && params.data.status === 'SCHEDULED') { 
     return { 
      'background-color': '#455A64', 
      'color': '#9AA3A8' 
    } 
    } else if (params.data.status === 'SCHEDULED') { 
     return { 
      'background-color': '#4CAF50', 
      'color': '#F4F8F5' 
     }; 
    } 
    return null; 
}; 

INLINE:

vm.gridOptions = { 
    columnDefs: columnDefs, 
    getRowStyle: function(params) { 
     if (params.selected && params.data.status === 'SCHEDULED') { 
      return { 
       'background-color': '#455A64', 
       'color': '#9AA3A8' 
      }; 
     } else if (params.data.status === 'SCHEDULED') { 
      return { 
       'background-color': '#4CAF50', 
       'color': '#F4F8F5' 
      }; 
     } 
     return null; 
    } 
} 
+0

Ich denke, Antwort 2 würde für ein Raster bereits instanziiert arbeiten. Ich glaube, es müsste eine Rasteraktualisierung folgen. Meine Antwort bezieht sich auf die Grid-Konfiguration vor der Instanziierung. –

0

ich andere Farbe gesetzt für gerade und ungerade Reihen können Sie es in keiner Weise tun.

$scope.gridOptions.getRowStyle = function getRowStyleScheduled(params){  
     if(parseInt(params.node.id)%2==0) { 
      return {'background-color': 'rgb(87, 90, 90)'} 
     }else { 
      return {'background-color': 'rgb(74, 72, 72)'} 
     } 
    };