2016-06-09 5 views
0

Ich habe zwei Raster mit gleichen Daten. Mein Ziel ist es, wenn eine Zeile in einem Raster ausgewählt wird, wird auch die entsprechende Zeile in einem anderen Raster ausgewählt. Plunker: http://plnkr.co/edit/BBfMxvsv0OUsjiqblBJQ?p=previewWählen Sie UGrid 2 Zeile, wenn UGrid 1 Zeile ausgewählt ist (umgekehrt)

Ich erhalte ausgewählte Gitter wie folgt aus:

onRegisterApi: function(gridApi) { 
    console.log('Loaded Grid API 1'); 
    $scope.gridApi1 = gridApi; 
    $scope.mySelectedRows1 = gridApi.selection.getSelectedRows(); 
    } 

Vielen Dank im Voraus

+0

Könnten Sie bitte beschreiben, was genau ist das Problem, das Sie schauen an? – Konstantin

Antwort

0

Update Ihr onRegisterApi für das erste Raster etwas wie folgt aus:

onRegisterApi: function(gridApi) { 
     console.log('Loaded Grid API 1'); 
     $scope.gridApi1 = gridApi; 
     $scope.mySelectedRows1 = gridApi.selection.getSelectedRows(); 

     gridApi.selection.on.rowSelectionChanged($scope,function(row){ 
     $scope.selectedRow = row.entity; 
     $scope.gridApi2.selection.selectRow($scope.selectedRow); 
     }); 
    } 

I Bin verbindlich rowSelectionChanged Ereignis ein erstes Gitter, also, wenn der Benutzer eine Zeile auswählen seine gefeuert .. Ich speichere die ausgewählte r ow in $scope.selectedRow

Das zweite Raster wird durch Aufruf der API: selectRow ausgewählt. Beachten Sie, dass Sie die richtige Auswahl muss für die Zeile Einheit passieren bekommen:

$scope.gridApi2.selection.selectRow($scope.selectedRow); <-- selectedRow is row entity

schließlich, erhalten Sie so etwas wie dieses:

$scope.gridOptions1 = { 
    saveFocus: false, 
    saveScroll: true, 
    enableFiltering: true, 
    enableGridMenu: true, 
    onRegisterApi: function(gridApi) { 
     console.log('Loaded Grid API 1'); 
     $scope.gridApi1 = gridApi; 

     gridApi.selection.on.rowSelectionChanged($scope,function(row){ 
     $scope.gridApi2.selection.selectRow(row.entity); 
     }); 
    } 
    }; 


    $scope.gridOptions2 = { 
    saveFocus: false, 
    saveScroll: true, 
    enableFiltering: true, 
    enableGridMenu: true, 
    onRegisterApi: function(gridApi) { 
     console.log('Loaded Grid API 2'); 
     $scope.gridApi2 = gridApi; 

     gridApi.selection.on.rowSelectionChanged($scope,function(row){ 
     $scope.gridApi1.selection.selectRow(row.entity); 
     }); 
    } 
    }; 
+0

Vielen Dank dafür. Dies funktioniert gut für die Auswahl. Haben wir auch etwas, um eine Zeile abzuwählen? Wenn eine Zeile in einem Raster deaktiviert wird, wird sie auch in anderen deaktiviert. –

+1

beziehen Sie sich auf die API: http://ui-grid.info/docs/#/api/ui.grid.selection.api:PublicApi, Sie haben 'unSelectRow', um die Auswahl aufzuheben –

Verwandte Themen