2017-10-03 22 views
0

角度アプリケーションには、ページの読み込み時にレンダリングされるグリッドがあります。行をクリックすると、同じグリッドを再描画/再レンダリングしたいと思います。私は行をクリックするとグリッドの行の中にdivを移入するリモートデータの別のGETリクエストが発生するため、これを実行しています。もちろん、応答からすべてのデータを表示すると、グリッドの行の高さを変更する必要があります。そのため、グリッドを再描画する必要があります。私のHTMLでイベント時にグリッドを書き直す

私は行をクリックしたときに発射されたメソッドredrawGridを()持っている私のコンポーネントで
<ng-template #displayListData> 

     <ag-grid-angular #agGrid style="width: 100%" class="ag-material grid-Holdings" 
      [gridOptions]="gridOptions" 
      [rowData]="rowData" 
      [getRowHeight]="getRowHeight" 
      headerHeight="46" 
      (gridReady)="prepareGrid()" 
      [isFullWidthCell]="isFullWidthCell" 
      [doesDataFlower]="doesDataFlower" 
      [fullWidthCellRendererFramework]="getFullWidthCellRenderer()" 
      (rowClicked)="redrawGrid($event)"> 
     </ag-grid-angular> 

</ng-template> 

。 )(

ここ
redrawGrid(params: any): void { 

    //TRIED BOTH DID NOT WORK 
    params.node.setRowHeight(this.newRowHight); 
    // this.gridOptions.api.resetRowHeights(); 
} 

がgetRowHeightです:このメソッドに渡された新しい高さに応じて、私はsetRowHeight()とresetRowHeight()を呼び出してみましたが、それは...メソッドの火災を動作しませんでしたが、グリッドが再描画されていません同じコンポーネントでの方法:

getRowHeight(params) { 
     let isDetailRow = params.node.level === 1; 
     let rowHeight: number = this.newRowHeight; 
     // my new rowHeight or 48px 
     return isDetailRow ? rowHeight : 48; 
} 

私は解決策を複雑にかけていた場合、私は疑問に思う、AG-グリッドに新しいです...

答えて

0

いくつかの実験をした後、溶液は、上のAG-グリッドのsetRowHeightを呼び出すことでしたノードのchildFlowerは、次のようになります。

redrawGrid(params: any): void { 
     params.node.childFlower.setRowHeight(this.globalRowCount * 34); 

     this.gridOptions.api.onRowHeightChanged(); 
} 

しかし!しかし...絶頂は変更されません、あなたはhttps://www.ag-grid.com/javascript-grid-row-height/#gsc.tab=0

で「行の高さを変更する」 onRowHeightChanged()

参照を呼び出さない限り、グリッドが再描画しません

関連する問題