2014-10-09 12 views
10

Sto usando il Angular UI Grid per visualizzare alcuni dati. Ordinamento viene attivato e inizializzata nonché seleziona una singola riga:Come accedere alle righe ordinate in una griglia dell'interfaccia utente angolare?

vm.gridOptions = { 
    enableSorting: true, 
    enableRowSelection: true, 
    multiSelect: false, 
    noUnselect: true, 
    columnDefs: [ 
     { name: '#', field: 'ID' }, 
     { name: 'Name', field: 'CODE', sort: { direction: 'asc', priority: 1 } }, 
     { name: 'Comment', field: 'DESCR' }, 
    ], 
    data: [] 
}; 

sono in grado di selezionare una riga e le righe vengono ordinate dalla colonna "Nome" in ordine crescente come configurato.

Come mostrato nella UI Grid Tutorial 210, ho aggiunto la logica di selezionare automaticamente il primo elemento dopo il mio dati sono stati caricati e aggiunti alla rete:

datacontext.getAllGcTab(vm.filter).then(function (result) { 
    vm.gridOptions.data = result.results; 
    vm.gridApi.selection.selectRow(vm.gridOptions.data[0]); 
}); 

Ma questo codice è selezionando la prima oggetto del dati non ordinati. Ci sono circa 500 elementi nella mia griglia, che non sono molti e si comportano bene, ma in questo caso l'oggetto selezionato è da qualche parte lungo la linea e invisibile.

Esiste qualche opzione per accedere direttamente alle righe o ai dati ordinati della griglia dell'interfaccia utente?

So che l'ordinamento esterno potrebbe risolvere il problema, perché quindi assegnerei i dati già ordinati alla griglia. Ma questo mi sembra un inutile sovraccarico ...

+0

C'è una soluzione per questo sulla strada - pubblicherò una risposta una volta che questo è stato rilasciato. – Spontifixus

+0

qualsiasi parola sulla risposta? –

risposta

10

$scope.gridApi.core.getVisibleRows() restituisce un array di righe nell'ordinamento/filtro corrente.

+1

Se restituisce solo le righe visibili effettive, non servirà a nulla. È improbabile che tutte e 500 le righe siano visibili allo stesso tempo. – Jesper

+2

Restituisce l'intero set di dati, l'ho appena controllato: '$ scope.gridOptions.data.length' restituisce lo stesso valore di' $ scope.gridApi.core.getVisibleRows(). Length'. http://i.imgur.com/42N6EZA.png –

+0

nota se si applicano i modelli di celle (ad es. 12345 -> 12,345) i dati restituiti con questo sono [i dati senza quella formattazione] (https://github.com/ angular-ui/ng-grid/issues/3597) applicato –

Problemi correlati