代码之家  ›  专栏  ›  技术社区  ›  Hoàng Nguyễn

角度5+ag网格-使用带媒体查询的ag网格

  •  0
  • Hoàng Nguyễn  · 技术社区  · 6 年前

    在大屏幕上我用 sizeColumnsToFit() 为了使ag网格表适合整个屏幕,但是在移动屏幕大小时,我想使用 autoSizeColumns() 因为 SizeColumnstoFit() 将使所有列非常小。因此,是否可以通过媒体查询设置特定的屏幕大小来动态实现这一点?或者有人有其他解决办法吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Hoàng Nguyễn    6 年前

    最后,我得到了一个解决方案,目前运行良好。我提出了一个条件 onGridReady() 它最初检测屏幕大小的宽度,因此它可以动态地启动 autoSizeColumns() sizeColumnsToFit()

      onGridReady(params) {
        setTimeout(() => {
          this.gridApi = params.api;
          this.gridColumnApi = params.columnApi;   
          const eGridDiv = document.querySelector('.my-grid');
          const allColumnIds = [];
          if (eGridDiv.clientWidth <= 768) {
            this.gridColumnApi.getAllColumns().forEach(function(column) {
              allColumnIds.push(column.colId);
            });
            this.gridColumnApi.autoSizeColumns(allColumnIds);
          } else {
            params.api.sizeColumnsToFit();
          }      
        }, 500);
      }
    
    <ag-grid-angular 
    style="width: auto; height: 60vh;"
    class="ag-theme-balham my-grid"
    [rowData]="data" 
    [columnDefs]="columns"
    [enableColResize]="true"
    (gridReady)="onGridReady($event)">
    </ag-grid-angular>