initGrid() {
        this.gridOptions = Object.assign({}, DefaultGridOptions, {
            context: this,
            columnDefs: this.createColumnDefs(),
            sideBar: sideBar(),
            onToolPanelVisibleChanged: (params) => {
                // 侧边栏状态变化时重新计算列宽
                setTimeout(() => params.api.sizeColumnsToFit(), 20);
            },
            onGridReady: () => {
                this.gridOptions && this.gridOptions.api && this.gridOptions.api.sizeColumnsToFit();
            },
            onGridSizeChanged: () => {
                this.gridOptions &&
                    this.gridOptions.api &&
                    this.gridOptions.api.sizeColumnsToFit();
            },
            onNewColumnsLoaded: () => {
                this.gridOptions &&
                    this.gridOptions.api &&
                    this.gridOptions.api.sizeColumnsToFit();
            },
            onRowDataChanged: () => {
                this.gridOptions &&
                this.gridOptions.api &&
                this.gridOptions.api.sizeColumnsToFit();
             }
        } as GridOptions);
    }

注意:sizeColumnsToFit 很重要,不然在初始化页面的时候,很可能宽度不会自适应匹配,甚至出现宽度不超过页面总宽度,并且没有数据的情况下,还是出现了横向滚动条

上面几个生命周期内使用sizeColumnsToFit
,都很必要,这有点类似于重新布局table,让他显示的更加正常和优化

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐