1

行選択とカスタム セル要素で UI-GRId を使用する際に問題に直面しています。

サンプルプランカーはこちら: http://plnkr.co/edit/Ed6s6CGFGXyUzj2cyx2g?p=preview

$scope.gridOptions = { showGridFooter:true,enableRowSelection: true, enableRowHeaderSelection: false };

$scope.gridOptions.columnDefs = [
{ name: 'id' },
{ name: 'name'},
{ name: 'age', displayName: 'Age (not focusable)', allowCellFocus : false },
{ name: 'address.city' },
{ name:'address.pin',cellTemplate:'<select><option value="122002">122002</option><option value="122001">122001</option></select>'}];

行をクリックすると、それぞれの行が選択されることがわかりますが、ドロップダウンオプションを暗黙的に選択する傾向がある場合は、行選択イベントも発生します。ドロップダウンのような要素をクリックすると、行選択イベントがトリガーされないようにする必要があります。

ガイドをお願いします。

4

2 に答える 2

2

興味深い質問です。まだ実行していませんが、実行するのはまだ先のことだと確信しています。解決策を示すためにプランクを作成しました。

基本的に、AranS が述べたように、私がやったことはウォッチャーを登録することです。そこから、行と発生したイベントの 2 つのオブジェクトを操作します。イベント オブジェクトは、どの要素が選択 (クリック) されたかを明らかにするため、それが DIV であったか、それ以外であったかを識別できます。選択リストが変更された場合、evt.srcElement.tagName の値は「SELECT」です。

http://plnkr.co/edit/k2XhHr2QaD1sA5y2hcFd?p=preview

  $scope.gridOptions.onRegisterApi = function( gridApi ) {
    $scope.gridApi = gridApi;

    gridApi.selection.on.rowSelectionChanged($scope,function(row,evt){
      if (evt)
        row.isSelected = (evt.srcElement.tagName === 'DIV');
    });

  };
于 2016-05-25T12:30:43.433 に答える
1

ui-grid の API を使用すると、行の選択を制御できます。別のスレッドからのこの回答を見てください: https://stackoverflow.com/a/33788459/5954939。基本的に、イベントrowSelectionChangedまたはisRowSelectable. 例が必要な場合はお知らせください。

于 2016-05-25T07:13:43.307 に答える