J'essaie de colorer une ligne en fonction de sa valeur dans le nouveau angular-ui-grid 3.0 rc12 mais je n'ai pas pu. Le code suivant fonctionnait dans la version précédente (ngGrid):
$scope.gridOptions =
data: 'data.sites'
tabIndex: -1
enableSorting: true
noTabInterference: true
enableColumnResizing: true
enableCellSelection: true
columnDefs: [
{field: 'sv_name', displayName: 'Nombre'}
{field: 'sv_code', displayName: 'Placa'}
{field: 'count', displayName: 'Cuenta'}
]
rowTemplate: """<div ng-class="{green: true, blue: row.getProperty('count') === 1}"
ng-repeat="col in colContainer.renderedColumns track by col.colDef.name"
class="ui-grid-cell"
ui-grid-cell></div>"""
et le css correspondant:
.grid {
width: 100%;
height: 250px;
}
.green {
background-color: #2dff07;
color: #006400;
}
.blue {
background-color: #1fe0f0;
color: #153ff0;
}
Le problème ici est que l'expression:
row.getProperty('count') === 1
Ne fonctionne plus comme dans ngGrid. Toutes les suppositions sur la façon d'atteindre le même dans angular-ui-grid ( i-grid.info )
Merci beaucoup!
La nouvelle ui-grid a une propriété spéciale pour le cellClass:
$scope.gridOptions = {
enableSorting: true,
data:'myData',
columnDefs: [
{ field: 'sv_name', displayName: 'Nombre'},
{field: 'sv_code', displayName: 'Placa'},
{ field: 'count', displayName: 'Cuenta',
cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) {
if (grid.getCellValue(row,col) == 1) {
return 'blue';
}
return 'green';
}
}
]
};
Regardez son Plunker
Notez que j'ai fait la couleur pour la classe vert en rouge parce que c'est mieux pour voir et susciter une confusion maximale :-)
Mise à jour:
Voici la solution pour la coloration des lignes.
Écrivez votre modèle de ligne comme ceci:
var rowtpl='<div ng-class="{\'green\':true, \'blue\':row.entity.count==1 }"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }" ui-grid-cell></div></div>';
Voici le Plunker fourch
Notez que la couleur d'arrière-plan est remplacée par les arrière-plans des cellules. Trouvez un moyen de contourner cela par vous-même :-)
Désolé pour la mauvaise lecture initiale de votre question. Je laisse la partie cellClass dans cette réponse au cas où quelqu'un en aurait besoin.
Notez que la couleur d'arrière-plan est remplacée par les arrière-plans des cellules. Trouvez un moyen de contourner cela par vous-même :-)
Sur la base de la réponse précédente, si vous souhaitez remplacer la couleur d'arrière-plan au niveau d'une ligne, vous pouvez utiliser ceci:
.ui-grid-row .ui-grid-cell {
background-color: inherit !important;
}
Vous pouvez simplement utiliser une classe CSS spécifique
.invalidated {
background-color: #f2dede !important;
}
et ajoutez ng-class sur le modèle de ligne div avec le champ 'invalidated' ou appelez une fonction (l'exemple est dans plnkr):
<div ng-class="{invalidated: row.entity.invalidated}"
Voici le plunkr http://plnkr.co/edit/syuRZorj0nGq3B9p3U1h?p=preview
J'espère que ça t'as aidé.
Veuillez essayer cecisee the code here
http://plnkr.co/edit/WiIo7Dddxh52uloTtWTW?p=info .
J'ai couvert de nombreuses couleurs de cellules basées sur des scénarios comme.
Essaie. Peut-être que vous pouvez y acquérir des connaissances/idées.
@Naushad KM et si quelqu'un doit faire une validation de cellule en temps réel après un appel $ http.
Voilà ce qu'il fait:
Example
: Plunker