【问题标题】:Custom toolpanel rendered outside of grid在网格之外呈现的自定义工具面板
【发布时间】:2021-07-15 09:33:39
【问题描述】:

编辑: 感谢以下回答。我没能解决它,但我在我的项目中找到了罪魁祸首。 似乎 将网格放在材料选项卡列表中时出现问题 是用*ngForI created an example where it goes wrong生成的

我正在使用 AG Grid v25 和 angular 11。尝试构建自定义工具面板时,内容始终呈现在网格之外(网格下方)。即使我只是把一个普通的<div>test</div> 作为工具面板的 html 内容。工具面板按钮显示并正常工作,但在内容呈现在网格下方时会打开一个空白面板。此外,无论是否打开带有空白内容的自定义工具面板,内容始终可见。

我没有收到任何错误或警告。我一直在尝试与 github 上发布的默认过滤器工具面板代码进行比较,但我不知所措。我有什么遗漏吗?

在组件中注册我的面板(我还在模块中将面板注册为文档状态):

this.frameworkComponents = {
            userSettingsToolPanel: UserSettingsToolPanel
    };

侧边栏代码:

this.sideBar = {
    toolPanels: [
      {
        id: "columns",
        labelDefault: "Columns",
        labelKey: "columns",
        iconKey: "columns",
        toolPanel: "agColumnsToolPanel"
      },
      {
        id: "filters",
        labelDefault: "Filters",
        labelKey: "filters",
        iconKey: "filter",
        toolPanel: "agFiltersToolPanel"
      },
      {
          id: 'userSettingsToolPanel',
          labelDefault: 'Settings',
          labelKey: 'userSettingsToolPanel',
          iconKey: 'menu',
          toolPanel: 'userSettingsToolPanel',
        }
    ],
    hiddenByDefault: false,
    defaultToolPanel: null
  };

工具面板代码:

import { Component, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';
import { IToolPanel, IToolPanelParams } from '@ag-grid-community/all-modules';

@Component({
  selector: 'usersettings-panel',
  template: ` <div>test</div>`,
  styles: [``]
}

)
export class UserSettingsToolPanel implements IToolPanel {

  refresh(): void {
    throw new Error('Method not implemented.');
  }
  private params: IToolPanelParams;

  agInit(params: IToolPanelParams): void {
    this.params = params;


  }

}

【问题讨论】:

  • 您的自定义工具面板对我来说看起来不错,请参阅here

标签: ag-grid ag-grid-angular


【解决方案1】:

您可以尝试设置 popupParent 吗? https://www.ag-grid.com/angular-grid/context-menu/#popup-parent

popupParent: Element;

constructor() {
    this.popupParent = document.querySelector('body');
  }
<ag-grid-angular [popupParent]="popupParent">
</ag-grid-angular>

【讨论】:

  • 谢谢,但这似乎没有帮助。我已经编辑了我的原始帖子以添加它似乎出错的地方。
  • 如你所说,它绝对是 *ngFor。你能试试这个吗? plnkr.co/edit/T7JD7hylMsxMfjMd?preview将网格的内容移动到单独的组件中
  • 这似乎确实是解决方案,非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2014-10-20
  • 2014-07-11
相关资源
最近更新 更多