2017-06-30 18 views
0

私はag-gridで奇妙な動作をしていますが、何か間違っているかバグか分かりません。初期化後にグリッド角度が間違っている行順

this.gridOptions = { 
    enableSorting: true, 
    rowHeight: 50, 
    suppressDragLeaveHidesColumns: true, 
    enableColResize: true, 
    domLayout: 'autoHeight', 
    rowSelection: 'single', 
}; 

<ag-grid-angular 
    #agGrid 
    [rowData]="articleArray" 
    [gridOptions]="gridOptions" 
    (cellClicked)="showDetails($event)" 
    (gridReady)="onGridReady()" 
    (modelUpdated)="onModelUpdated()" 
    (gridSizeChanged)="sizeToFit()" 
    ></ag-grid-angular> 

でaggridの初期化と

updateArticleOrder() { 
    const result: string[] = []; 
    this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => result.push(rowNode.data.id)); 
    this.articleOrderChanged$.emit(result); 
    } 

によって、グリッド内の行の結果順位を取得した後、私は順序が異なることに注意してください[rowData]="articleArray"で使用された元の入力。正確には、11個のアイテムがグリッドの下部に移動し、グリッドは元のインデックス11から始まります。なぜそれが避けられますか?並べ替えの後にupdateArticleOrder()onModelUpdated()の内部で呼び出されたとき、最初の行をクリックするとインデックス0が表示され、正しい順序が再び得られます。

[編集]グリッドを初期化するときにのみこの問題が発生することがわかりました。グリッドが既に表示された後でarticleArrayが更新されると、this.gridOptions.api.forEachNodeAfterFilterAndSortは新しいアイテムを正しい順序で返します。

答えて

2

これはおそらく、[domLayout] = "'autoHeight'"の使用に起因するバグです。一時的な解決策として[rowBuffer]を高い値に設定しようとします。たとえば、[rowBuffer] = "10000"

+0

です。どうもありがとうございました。 – Phil

関連する問題