2015-05-09 13 views
10

Mit ui-grid Ich möchte eine Liste aller gefilterten Datenzeilen mit dem Filter erhalten.Wie bekomme ich die gefilterten Zeilen im UI-Grid?

Im unteren Kasten habe ich die ursprünglichen Daten von 500 Elementen gefiltert bis 61. Nun, wie bekomme ich eine Liste dieser 61 Einheiten?

plnkr link

Wenn ich den folgenden Code verwenden, erhalte ich nur die Zeilen auf dem Bildschirm gerendert

var _renderedRows = $scope.gridApi.grid.renderContainers.body.renderedRows; 

die Schaltfläche am unteren Rand des Plunker Anklicken zeigt die Anzahl der gefilterten Zeilen, die nur 14 im Gegensatz zu 61. Das funktioniert perfekt, wenn es 14 oder weniger in meinem Filter gibt, da ich von oben auf das Entitätsobjekt zugreifen kann. Aber ich kann keine Eigenschaft in dem Raster sehen, die die gefilterten Zeilen verfügbar macht.

Also wie kann ich die Liste von 61 bekommen, damit ich sie in eine andere Funktion übergeben kann, um Aktionen an ihnen durchzuführen?

Antwort

23

Verwenden Sie die PublicApi bekommen die aktuellen sichtbaren Zeilen zählen

$scope.filteredRows = $scope.gridApi.core.getVisibleRows($scope.gridApi.grid); 

Hier wird die aktualisierte plnkr (Hinweis: Sie haben die „Get gefilterten Zeilen“ klicken)

+1

wow, genau das Richtige! tausend Dank. – DeclanMcD

+1

Ich glaube, dass dies nur diejenigen sichtbar macht, die aktiviert sind, wenn Sie Paging aktiviert haben, wird die Seitengröße maximal sein. Ich bin noch nicht auf etwas gestoßen, das speziell * alle * gefilterten Zeilen (über alle Seiten) noch selbst erreicht, aber ich suche ... – thynctank

+0

Wenn Sie Gruppierung und treeNodes verwenden, ist die Eigenschaft 'treeNode.row.visible === true ', arbeitete für mich, um gefilterte gruppierte Zeilen zu erhalten. Ohne Paginierung. –

Verwandte Themen