2016-10-24 14 views
2

私はag-grid(free)をAngular 1で使用しています。既にノードの子が表示されるツリーデータを取得していますそれの権利。しかし、私がしたいのは、ダブルクリックでノードを折りたたんだり展開したりすることです。今は、デフォルトビューが展開するように設定されているので、それらを折りたたむことに集中しています。ここで$ scope.gridOptions以内に与えられたダブルクリックイベント、のための私のコードは次のとおりです。ag-grid - ツリーデータの展開/折りたたみ

onCellDoubleClicked: function(event){ 
             event.node.expanded = false; 
             $scope.gridOptions.api.refreshView(); 
            }; 

私の仮定が偽に拡張プロパティを変更すると、子ノードとの再描画グリッドにrefreshViewコールが崩れ引き起こすということでしたが、ビューはダブルクリック後も変更されません。また

、gridOptions内の私のgetChildNodeDetails:

getNodeChildDetails: function(obj){ 
       if (obj.children){ 
        var nodeType = obj.breakdownCol; 
        return { 
         group: true, 
         expanded: obj.expanded || true, 
         children: obj.children, 
         field: 'name', 
         key: obj[nodeType] 
        } 
       } else { 
        return null; 
       } 
      } 

私は、企業を購入することなく、この問題を解決する方法を上の任意のアイデア?エンタープライズでは行をグループ化することができます。これには展開/折りたたみ機能が組み込まれています。

+0

[列グループ(例)]ではなく[行グループ(例)](https://www.ag-grid.com/javascript-grid-grouping/exampleGroupingKeys.html)を再作成しようとしていますhttps://www.ag-grid.com/javascript-grid-grouping-headers/example1.html)correct?...列のグループ化は無料版の一部なので... –

+0

@JarodMoser正しいその行のグループ化の例で表示される展開/折りたたみ。 – withoutdistraction

答えて

1

私自身のアプリケーションでは、行グループ化機能をシミュレートした回避策を作成しました。実際には、グリッドからのデータはadds and removesです。

このオプションの欠点の1つは、行が実際にテーブルにないため、実際のエンタープライズ機能であるグリッドとは異なり、列のフィルタリングや並べ替えが実際には表示されないデータでは実行できないということです。オファー。しかし、フィルタリングと並べ替えを無効にした場合、このオプションは完全に実行可能です。このような

何か:

function toggleExpansion(index, data) { 
    if (insert) { 
     gridOptions.api.insertItemsAtIndex(index, data); 
    } else { 
     gridOptions.api.removeItems(data) 
    } 
} 

私の具体的なコードは、より多くのチェックと、この質問とは関係のない他のものになりますが、それは私の周りの仕事としてやっているかの簡単な説明です。

関連する問題