Je souhaite modifier la couleur d'arrière-plan des lignes entières si une certaine cellule de cette ligne n'est pas vide. J'ai été strugling avec l'ajout d'un formateur personnalisé, mais aucun résultat.Comment changer une couleur d'arrière-plan de lignes dans Slickgrid, si une certaine cellule n'est pas vide?
1
A
Répondre
0
Prouvé pour être plus difficile que je pensais qu'il le ferait.
Quoi qu'il en soit, en supposant des colonnes avec field
valeurs de 0,1,2,3, & 4 vous pouvez effectuer les opérations suivantes:
var colNeedingData = 2; // Column "C" (row headings are ignored in the index)
function cellNotEmptyFormatter(row, cell, value, columnDef, dataContext) {
if (dataContext[colNeedingData] && dataContext[colNeedingData] != '') {
var rowCells = {};
rowCells[row] = {
0: "highlight",
1: "highlight",
2: "highlight",
3: "highlight",
4: "highlight"
};
grid.setCellCssStyles("highlightRowWhenNotEmpty" + row, rowCells); // add row# to make a unique key
} else if (dataContext[colNeedingData] == '') {
grid.removeCellCssStyles("highlightRowWhenNotEmpty" + row); // add row# to make a unique key
}
if (value)
return value;
else
return '';
};
Avec la définition des colonnes quelque chose le long des lignes de
for (var i = 0; i < 5; i++) {
columns.push({
id: i,
name: String.fromCharCode("A".charCodeAt(0) + i),
field: i,
width: 100,
editor: Slick.Editors.Text,
formatter: cellNotEmptyFormatter
});
}
Cela donnera à chaque cellule de la rangée une classe highlight
lorsque les données sont présentes dans la troisième colonne (colonne "C" dans le jsfiddle ci-dessous).
Voici une démo - http://jsfiddle.net/gftqzyj5/
Si vous pensez que cette réponse répond à votre question pourriez-vous envisager d'accepter en cliquant sur la coche à côté de lui, merci –