2016-03-08 2 views
1

Je dois modifier légèrement une ligne ag-grid après qu'elle a été rendue. Dans ag-grid, les éléments HTML réels ne sont pas nécessairement persistants, donc les styles définis manuellement peuvent tomber. Pour une chose, je dois modifier la case à cocher de sélection pour définir tabindex à -1. Cela peut techniquement être fait dans le rappel cellRenderer, bien qu'il semble assez hacky. (La case à cocher peut être trouvée à params.eGridCell.children[0].children[0].wrappedElement.)Modifier une ligne ag-grid après le rendu

Mais je dois aussi ajouter une classe CSS à certaines lignes pour les mettre en évidence en fonction de critères externes. Je n'ai pas trouvé un moyen de le faire du tout.

La meilleure solution semble être d'utiliser une sorte de rappel après rendu, mais à ma connaissance rien de tel n'existe.

J'ai trouvé quelques questions connexes, mais ils ont tous deux été résolus par cellStyle, ce qui ne suffirait pas ici:

+0

Est-ce que vous regardez ici? https://www.ag-grid.com/angular-grid-cell-styling/index.php vous pouvez utiliser cellClassRules pour adapter votre style de classe à vos besoins. Utilisez le paramètre eGridCell n'a rien de hacky, il a été ajouté dans le but que vous en avez besoin, donc je ne vois aucun problème de le faire. – Walfrat

+0

'cellClassRules', naturellement, met des classes sur les cellules. –

Répondre

4

Vous avez pas 1 mais 3 options :

getRowClass(params):

Version de rappel de la propriété 'rowClass'. La fonction doit renvoyer une chaîne ou un tableau de chaînes.

getRowStyle(params):

version Callback de la propriété 'rowstyle'. La fonction doit renvoyer un objet de valeurs CSS.

processRowPostCreate(params):

vous permet de traiter les lignes après leur création. Donc, faire l'ajout final des attributs personnalisés, etc.

Dans ce dernier, vous avez la ligne params.eRow.

Toutes les prises de https://www.ag-grid.com/javascript-grid-callbacks/index.php

+0

'processRowPostCreate' est ce dont j'ai vraiment besoin - cependant, c'est une nouvelle fonctionnalité qui a été introduite hier! Au lieu de cela, 'getRowClass' fera l'affaire. –

+0

Ouais, Niall a été bussy la semaine dernière. Mais bon, 'getRowClass' obtient BEAUCOUP avec quelques classes CSS et quelques conditions. Heureux de vous aider :) – tfrascaroli