2015-04-25 4 views
2

J'utilise slickgrid dans une application angulaire qui prend en charge plusieurs langues. Comment puis-je mettre à jour les en-têtes de colonne lorsque la langue sélectionnée est modifiée. Ma définition de colonne ressemble à ceci et ce que je veux essentiellement, c'est que la grille appelle de nouveau myI18N pour mettre à jour le titre de la colonne.Mise à jour du contenu de l'en-tête de colonne dans slickgrid

{ id: "myid", name: myI18nFn('idKey'), field: "myid", width: 100} 

je un événement angulaire qui détecte les changements et j'avoir accès à l'objet de la grille là-bas, je ne suis pas sûr de ce que je dois faire faire mettre à jour l'en-tête de colonne

Répondre

2

Vous devez mettre à jour colDef.name lorsque la langue change et déclenche la grille pour reconstruire la ligne d'en-tête (qui se produit dans la méthode createColumnHeaders dans la source SlickGrid). Le moyen le plus simple est de simplement mettre à jour la liste des colonnes avec un appel setColumns, qui déclenche un rerender de la grille entière:

function updateColumnHeaders() 
{ 
    var cols = grid.getColumns(); 
    for(var i = 0, il = cols.length; i < il; i++) 
    { 
     cols[i].name = myI18nFn(cols[i].id); 
    } 
    grid.setColumns(cols); 
}