2016-06-09 54 views
0

我有兩個具有相同數據的網格。我的目標是在一個網格中選擇一行時,另一個網格中的對應行也被選中。 Plunker:http://plnkr.co/edit/BBfMxvsv0OUsjiqblBJQ?p=preview當ui grid 1行被選中時,選擇ui grid 2 row(反之亦然)

我越來越選定的網格是這樣的:

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

在此先感謝

+0

能否請你說明究竟是什麼問題,你正面臨着? – Konstantin

回答

0

更新您的onRegisterApi的第一網格是這樣的:

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); 
     }); 
    } 

我我綁定rowSelectionChanged事件一個第一個網格,所以,當用戶選擇一行時,它將被解僱..我存儲選定的r ow in $scope.selectedRow

通過調用API選擇第二個網格:selectRow。 請注意,您必須通過行實體得到適當的選擇:

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

最後,你得到的東西是這樣的:

$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

非常感謝。這適用於選擇。同樣,我們有什麼可以取消選擇一行?就像在一個網格中取消選擇一行,它也會被取消選中。 –

+1

指的是API:http://ui-grid.info/docs/#/api/ui.grid.selection.api:PublicApi,你有'unSelectRow'來取消選擇 –