Angular ngGrid select row on page load

后端 未结 4 726
轻奢々
轻奢々 2021-01-02 01:01

My question is an extension to thisquestion

Getting select rows from ng-grid?

plunker - http://plnkr.co/edit/DiDitL?p=preview

I need a row to be sele

4条回答
  •  有刺的猬
    2021-01-02 01:34

    Ok, the answer was awarded long ago, but I still think that it has a code smell (no offence to the poster, but it is sub-optimal.

    What I did was use the grid's ngGridEventData event.

    You have to be careful, since it fires multiple times (once for each row added), but, since we know the size of the data which will populate the gird and, since the event, allows us to examine how many rows have been rendered, we can tell when the last row is rendered, meaning that the grid is not fully displayed (NOTE: I did not test this with scrolling grids, where some rows may not be visible, could someone please confirm if it works in hat case? I personally never use scrolling grids (it's a browser page, not a Desktop).

    Something like this:

        $scope.$on('ngGridEventData', function (row, event) 
                   {   
                       if (event == $scope.vehicleTypeGridOptions.gridId)
                       {
                           console.info('@+@ vehicleTypeGridOptions  grid updated');
                           var renderedRows = row['targetScope'].renderedRows.length;
                           console.info('renderedRows = ' + renderedRows + '; num data rows = ' + $scope.vehicleTypesGridData.length);                       
    
                           if (renderedRows == 0)
                           {
                               return;
                           }
    
                           // if grid rowcount = dat length then it's fully displayed
                           if (renderedRows == $scope.vehicleTypesGridData.length) 
                           {
                               console.log('vehicleTypeGrid fully rendered. Select row zer0, then populate vehicleDescriptionGrid');
                               console.info('Select row zer0');                                
                               $scope.vehicleTypeGridOptions.selectItem(0, true);   // Grid rendered, select first row
                               // console.table($scope.vehicleTypeGridOptions.selectedItems);
                               var vehicle_type =     $scope.vehicleTypeGridOptions.selectedItems[0].vehicle_type;
                               console.info(vehicle_type);                               
                           }
                       }
    

提交回复
热议问题