2017-06-30 3 views
0

Y a-t-il des fonctionnalités implémentées pour masquer les lignes de manière conditionnelle?Lignes de masquage de quadrillage AG

Je les instancier comme ceci:

let rows = [ 
    { name: "Adam", isVisible: true }, 
    { name: "Bert", isVisible: true }, 
    { name: "Carl", isVisible: false } 
]; 

for(let row of rows) 
    row["height"] = row.isVisible ? 25 : 0; 

this.rowData = rows; 

Et puis je fournir cette fonction pour définir la hauteur de ligne:

this.gridOptions.getRowHeight = (params) => { 
    return params.data.height; 
} 

Ce n'est pas une solution parfaite, surtout parce que si la grille se termine par une ligne de hauteur 0 montre quand même cette ligne (avec la hauteur de 4px environ)

+0

Vous pouvez créer un filtre pour la colonne 'isVisible' –

Répondre

1

Je pense que le meilleur moyen serait de filtrer les données basées sur la propriété isVisible de l'objet.

Une mise en œuvre pourrait être:

gridOptions.isExternalFilterPresent =() => {return true;} 
gridOptions.doesExternalFilterPass = (node) => { 
    return gridOptions.api.getValue("isVisible", node) 
} 

si les modifications de données datamodel alors vous avez juste besoin d'appeler gridOptions.api.onFilterChanged()