2013-10-30 15 views
5

組み込み機能を使用してng-gridの選択を「無効にする」かロックすることはできますか?ユーザーが行を選択してボタンをクリックできるようにし、ユーザーが別のボタンを押すまでグリッドがロックされたままにしておきたい。ng-gridで選択を無効にする方法

答えて

11

はい、を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

+0

これは動作しますが、今はiveが実現しました。グリッドが構築されているdivからいくつかの入力ボックスを移動してロックされないようにする必要があることがわかりました。問題は私が彼らがそこの外にあるグリッドの範囲にアクセスできると思いますそれは範囲を渡すことは可能ですか?ユースケースは、編集ボタンを押した後、現在選択されている行を編集できます。 – Tim

+1

はい、グリッドスコープを見つけて別の関数に渡してから '$ gridScope.apply'を呼び出すことはできますが、代わりに直接gridOptions.dataを編集する方が簡単かもしれません。データ(上記の例では 'myData')に対する変更は、通常自動的にグリッドに表示されます。 – user508994

0

これは2.3角度で動作します:

constructor() { 
    this.gridOptions = <GridOptions>{}; 
    this.gridOptions.suppressCellSelection = true; 
    } 
関連する問題