как отключить выделение в ng-grid

Можно ли «отключить» или заблокировать выбор ng-сетки с помощью встроенного функционала? Я хочу, чтобы пользователь мог выбрать строку, нажать кнопку, а затем сетка останется заблокированной, пока пользователь не нажмет другую кнопку.


person Tim    schedule 30.10.2013    source источник


Ответы (3)


Да, вы можете вернуть false из beforeSelectionChange, чтобы отключить изменение выбранных строк в сетке.

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

HTML:

<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>

Пример кода: http://plnkr.co/edit/PbhPzv?p=preview

См. также: https://github.com/angular-ui/ng-grid/wiki/Configuration-Options

person user508994    schedule 02.11.2013
comment
Это работает, но теперь я понял, что мне нужно переместить некоторые поля ввода из div, где построена сетка, чтобы они не были заблокированы, проблема в том, что я не думаю, что у них есть доступ к области сетки за пределами там, возможно ли передать прицел? Вариант использования — возможность редактировать текущую выбранную строку после нажатия кнопки редактирования. - person Tim; 04.11.2013
comment
Да, можно найти область сетки и передать ее другой функции, а затем вызвать $gridScope.apply, но вместо этого может быть проще отредактировать gridOptions.data напрямую. Изменения данных (myData в приведенном выше примере) обычно автоматически отображаются в сетке. - person user508994; 06.11.2013

Это работает в Angular 2.3:

  constructor() {
    this.gridOptions = <GridOptions>{};
    this.gridOptions.suppressCellSelection = true;
  }
person David Dehghan    schedule 20.01.2017
comment
Вам также может понадобиться gridOptions.suppressRowClickSelection. - person Andy King; 10.05.2018

добавьте ниже код в gridoption

enableRowHeaderSelection: false
person Ishara Samintha    schedule 12.05.2021
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его публикацией. – Из обзора - person Anand G; 12.05.2021