Take the 2-minute tour ×

Is it possible to "disable" or lock the selection of a ng-grid using the inbuilt functionality? I want the user to be able to select a row, click a button and then the grid will stay locked until the user presses another button.

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

Yes, you can return false from beforeSelectionChange to disable changing the selected rows on the grid.

$scope.option = {
    enableRowSelection: true,
$scope.gridOptions = {
    data: 'myData',
    beforeSelectionChange: function() {
      return $scope.option.enableRowSelection;
    //, ...


<button ng-click="option.enableRowSelection=false">Freeze Selection</button>
<button ng-click="option.enableRowSelection=true">Unfreeze Selection</button>
<div class="gridStyle" ng-grid="gridOptions"></div>

Example Code: http://plnkr.co/edit/PbhPzv?p=preview

See also: https://github.com/angular-ui/ng-grid/wiki/Configuration-Options

share|improve this answer
That works, but now ive realized i need to move some input boxes out of the div where the grid is built so they arent locked, problem is i dont think they have access to the scope of the grid outside of there, is it possible to pass the scope out? The use case is being able to edit the current selected row, after pressing an edit button. –  Tim Nov 4 '13 at 7:32
Yes, it is possible to find the grid scope and pass it to another function and then call $gridScope.apply, but might be easier to edit the the gridOptions.data directly instead. Changes to the data (myData in the example above) usually automatically show up in the grid. –  user508994 Nov 6 '13 at 16:16
add comment

Your Answer


