2016-01-06 2 views
0

J'ai une ag-grille et je charge dynamiquement des données à l'intérieur. J'ai activé le tri des colonnes, mais cela ne fonctionne pas. Rien ne se passe lorsque je clique sur l'en-tête de la colonne. Je ne suis pas sûr de la nature du problème. Ci-dessous est mon code:tri de colonne pour ag-grille ne fonctionne pas

var colobj = {}; 
    for(i = 0; i< file.fieldMetadata.length; i++){ 

    var len = file.fieldMetadata[i].name.length; 

    colobj = {'headerName' : file.fieldMetadata[i].name, 'field' : file.fieldMetadata[i].name, sortingOrder: ['asc','desc', 'null']}; 

vm.columnDefs.push(colobj); 

    vm.gridOptions.api.setColumnDefs(vm.columnDefs); 
    vm.gridOptions.api.setRowData(vm.fileContentsCols); 
    vm.gridOptions.enableSorting = true; 

Répondre

1

Le enableSorting ne fonctionnera pas ici. Seul l'appel à la fonction api fonctionnera.

Vous devez définir gridOptions.enableSorting = true depuis le début (pas après avoir reçu les données).

Le paramètre gridOptions est simplement un support pour l'initialisation. Une fois la grille initialisée, le champ api est disponible pour interagir avec la grille, toute modification des paramètres ne fonctionnera pas.

+0

Merci! Ça a marché!! –

+0

Pouvez-vous donner un exemple de ceci? dans ma table, je génère des données, puis je mets le columnDefs avec un cellRenderer personnalisé, puis je configure gridOptions, crée une nouvelle grille, puis remplit la grille avec le gridOptions.api.setRowData (data); Toute colonne utilisant un cellRenderer personnalisé ne fait pas l'objet d'un tri. – stuffyjoelab

+0

Je me suis arrêté à la version 3 d'ag-grid avec angularjs1. Un échantillon de moi pourrait ne pas être à jour. Vous devriez poser une nouvelle question avec suffisamment de détails. Si vous utilisez un CustomCellRenderer, vous devrez peut-être surcharger valueGetter. Pas que pour ma part je gérais le tri depuis le serveur, donc je ne suis pas très familier avec le tri en frontend. – Walfrat