【问题标题】:Cell renderer component moving outside of an AG-grid when it is inside a mat tab单元格渲染器组件在垫选项卡内时移出 AG 网格
【发布时间】:2020-08-13 23:32:51
【问题描述】:

我有两个 AG 网格显示数据。它们中的每一个在每行的末尾都有两个图标,用于修改或抑制数据行。它们都在一个垫子标签内。

<mat-tab-group>
    <mat-tab label="Adresses">
      <div class="col d-flex justify-content-end py-3"><button class="btn btn-major" *ngIf="modify" (click)="showCreateAdresseDialog()">CRÉER</button></div>
      <ag-grid-angular
        style="height: 600px"
        class="ag-theme-alpine"
        [rowData]="rowData"
        [gridOptions]="gridOptions"
        suppressCellSelection="true"
        [paginationAutoPageSize]="true"
        [pagination]="true"
        [frameworkComponents]="frameworkComponents"
        [overlayLoadingTemplate]="overlayLoadingTemplate"
        [overlayNoRowsTemplate]="overlayNoRowsTemplate"
        (gridReady)="onGridReady($event)">
      </ag-grid-angular>
    </mat-tab>

    <mat-tab label="Rôles">
      <div class="col d-flex justify-content-end py-3"><button class="btn btn-major" (click)="showCreateRoleDialog()" *ngIf="modify">CRÉER</button></div>
      <ag-grid-angular
        style="height: 600px"
        class="ag-theme-alpine"
        [rowData]="rolesRowData"
        [columnDefs]="columns"
        [gridOptions]="rolesGridOptions"
        suppressCellSelection="true"
        [paginationAutoPageSize]="true"
        [pagination]="true"
        [frameworkComponents]="frameworkComponents"
        [overlayLoadingTemplate]="overlayLoadingTemplate"
        [overlayNoRowsTemplate]="overlayNoRolesRowsTemplate"
        (gridReady)="onRolesGridReady($event)">
      </ag-grid-angular>
    </mat-tab>
  </mat-tab-group>

下面,你可能会看到我是如何在 AG-grid 中添加组件的。

frameworkComponents = {
    modifierButtonRenderer: ActeurModifierAdresseButtonRendererComponent,
    // Other components
};

  gridOptions = {
context: {
  parentComponent: this
},
defaultColDef: {
  sortable: true,
  filter: true,
  suppressMovable: true
},
columnDefs: [
  { /* some data columns */ },
  {cellRenderer: 'modifierButtonRenderer', pinned: 'right', width: 50, suppressMenu: true},
  {cellRenderer: 'supprimerButtonRenderer', pinned: 'right', width: 50, suppressMenu: true}
]

现在,每个按钮都在 AG 网格内呈现。但是如果切换到第二个 mat-tab,然后回到第一个,每个 cellRenderer 都会移到网格之外。不仅仅是 CSS 改变了元素的位置。它们在网格的结束标记之后移动。

Before I switch mat tabs

After the switch

有没有人知道发生了什么,或者我该如何解决这个问题?

谢谢,

祝你有美好的一天

【问题讨论】:

    标签: angular ag-grid-angular mat-table


    【解决方案1】:

    经过几次测试,似乎用一个

    包围 就足以消除该错误。

    不过,将网格作为 元素的直接子元素可能会导致该错误,这很奇怪。

    【讨论】:

    • 快要发疯了,当它嵌入到modals或其他隐藏组件中时,这似乎是一个问题,确实在桌子周围添加了一个div就可以了!
    • 谢谢,div 技巧为我节省了几个小时的混乱调试时间。
    • 非常感谢您提供的简单解决方案,为我节省了痛苦和时间。
    猜你喜欢
    • 2020-03-11
    • 1970-01-01
    • 2019-01-13
    • 2018-02-13
    • 2021-03-13
    • 2018-10-13
    • 2017-06-11
    • 2021-05-12
    • 2018-10-15
    相关资源
    最近更新 更多