javascript - 重绘事件网格

标签 javascript angular ag-grid

在我的 Angular 应用程序中,有一个在页面加载时呈现的网格。当我单击一行时,我想重新绘制/重新渲染相同的网格。我这样做是因为单击一行会触发另一个远程数据 GET 请求,以填充网格行内的 div。当然,一旦收到响应,我需要更改网格的行高以显示响应中的所有数据,这就是我需要重新绘制网格的原因。

在我的 html 中:

<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(),当我单击一行时该方法会触发。在此方法中,我尝试调用 setRowHeight() 和 resetRowHeight() 但它不起作用...该方法会触发,但网格不会根据传递的新高度重新绘制:

redrawGrid(params: any): void {

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

这是同一组件中的 getRowHeight() 方法:

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

我是 ag-Grid 的新手,我想知道我是否使解决方案过于复杂......

最佳答案

经过一些实验,解决方案是在节点的 childFlower 上调用 ag-Grid 的 setRowHeight,如下所示:

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

        this.gridOptions.api.onRowHeightChanged();
}

但是!但是...高度不会改变,网格也不会重绘,除非你调用 onRowHeightChanged()

请参阅“更改行高”:https://www.ag-grid.com/javascript-grid-row-height/#gsc.tab=0

关于javascript - 重绘事件网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46547067/

相关文章:

显然跳过了 Docker 内部生产的 Angular 构建

css - 悬停时显示垫子图标

javascript - 如何在 React 中使用外部过滤器? (农业网格)

twitter-bootstrap - 包含 Bootstrap 下拉菜单剪辑菜单的 ag-Grid 单元格

javascript - 主干 View 渲染函数被多次调用

javascript - 缩小将静态变量带到比较的左侧

javascript - iOS 上 JWPlayer 上的 Youtube

javascript - Ctrl+p vs window.print() 导致不同的页面设计

angular - 如何将数据从登录服务传递到 Angular 中的导航栏组件?

angularjs - 如何在 ag-grid 中启用 SingleClickEdit