标签: ag-grid-angular

如何将快速过滤器与服务器端/无限行模型一起使用?

根据文档:快速过滤器,快速过滤器适用于clientSide行模型。

我们正在为serverSide使用行模型,并且我们需要对客户端(网格的缓存块中)的数据使用快速过滤器。

我虽然使用过滤器管道[rowData]="myRowData",但对于这个行模型,我没有从 中获取任何数据myRowData

例如,如果您查看这个 plunk服务器端行模型 - 快速过滤器,我已[rowData]="rowData"在标记中进行分配并将其初始化为[]

从服务器加载初始块后,我假设应该可以使用它访问缓存块数据,以便使用角度管道,我将能够在客户端过滤掉数据(模仿行模型的快速过滤器serverSide)。就像我们以前在[rowData]="rowData | filter: filterText"中所做的那样

但我担心缓存数据无法通过rowData.

我们如何以某种方式将快速过滤器与具有serverSide行模型的 ag-grid 一起使用?

ag-grid ag-grid-angular

5
推荐指数
1
解决办法
6552
查看次数

通过setColumnDefs设置新的列定义不再起作用

我试图通过使用网格API调用setColumnDefs来设置新的列定义。这不符合预期。列标题的名称将不再更新!

参见此Plunkr:19.1.x版

版本19.0.0是最新的工作版本。

看到这个Plunkr:版本19.0.0

对我来说,这似乎是一个错误!

在我的项目中,我使用的是Angular 5,我注意到相同的行为。

ag-grid ag-grid-angular

5
推荐指数
2
解决办法
1195
查看次数

如何进行第二次 HTTP 调用来获取详细网格的数据 - getDetailRowData()

我有一个 ag-Grid 主/详细网格设置。因此,当主网格行展开时,它会加载详细网格。

请参阅简单示例: https://www.ag-grid.com/javascript-grid-master-detail/#example-simple-master-detail

这是基于详细网格的数据已经在主网格上使用的原始 json 数据中获取的基础上进行的。

我想获取id主网格所选行的 并进行第二次 HTTP 服务调用以获取详细网格的 json 数据。

简单的示例只是将 json 数据发送到 successCallback,如下所示:

      getDetailRowData: function(params) {
        params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

我尝试将此方法更改为:

      getDetailRowData: function(params) {
        this.http
          .get(
            "https://gist.githubusercontent.com/adrianwright109/37a5e37ba2382b26f42b9d12a8593878/raw/60d2ffed511262a6a2e7e54e01bffd28c3701c5e/ClientProfiles.json"
          )
          .subscribe(data => {
            params.successCallback(data);
          });

        // params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

错误类型错误:无法读取未定义的属性“http”

错误 错误:ag-Grid:当网格位于绘制行的中间时,无法让网格绘制行。当网格处于渲染阶段时,您的代码可能调用了网格 API 方法。为了克服这个问题,请将 API 调用设置为超时,例如,调用 setTimeout(function(){api.refreshView(),0}),而不是 api.refreshView()。要查看代码的哪一部分导致刷新,请检查此堆栈跟踪。

      getDetailRowData: function(params) {
        setTimeout(function() {
          this.http
            .get(
              "https://gist.githubusercontent.com/adrianwright109/37a5e37ba2382b26f42b9d12a8593878/raw/60d2ffed511262a6a2e7e54e01bffd28c3701c5e/ClientProfiles.json"
            )
            .subscribe(data => {
              params.successCallback(data);
            });
        }, 500);

        // params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

错误类型错误:无法读取未定义的属性“get”

我有一个笨蛋:

https://next.plnkr.co/plunk/IS5a3jKyDJJSSdh0

有没有人通过 Web API 服务调用实现延迟加载详细网格数据?

javascript ag-grid ag-grid-angular

5
推荐指数
1
解决办法
4409
查看次数

使用常春藤的Angular 8中的AG网格模块导入错误

尝试使用Ivy在Angular 8应用程序中导入ag网格模块时遇到以下错误。

ERROR in There is no format with import statements in 'path_to_node_modules/node_modules/ag-grid-angular' entry-point.

如果我禁用常春藤,错误消失。有谁知道解决方法?

套件版本:

 "ag-grid-angular": "^21.0.0",
 "ag-grid-community": "^21.0.0",
 "ag-grid-enterprise": "^21.0.0",
Run Code Online (Sandbox Code Playgroud)

angular-ivy ag-grid-angular

5
推荐指数
1
解决办法
273
查看次数

ag-Grid 初始化后如何提供 cellEditorParams?

这是我在文档和在线讨论中看到的经典示例,用于向单元格弹出列表提供“动态”项目列表。但这并不是真正的动态。所有的值和关系都是提前知道的,并被硬编码到源代码中。

cellEditor : 'agSelectCellEditor';
cellEditorParams: function(params) {
    var selectedCountry = params.data.country;
    if (selectedCountry==='Ireland') {
        return {
            values: ['Dublin','Cork','Galway']
        };
    } else {
        return {
            values: ['New York','Los Angeles','Chicago','Houston']
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我正在经营一家不断扩张的业务,并且每月将新城市添加到我在不同国家/地区保持企业业务的列表中,该怎么办?我不能每次获得新客户时都给程序员打电话。我需要一种在运行时动态提供此列表的方法,其中包含从应用程序数据库中获取的一组值 - 提前未知。

这可以做到吗?

我在这里记录了我不成功的努力:

如何将 ag-Grid 下拉列表绑定到其值在运行时才知道的字符串数组?

如果您能在我的其他询问中在这里或那里帮助我回复,我将不胜感激!

angular ag-grid-angular

5
推荐指数
1
解决办法
1万
查看次数

如何在 Angular 8 中将 Ag-Grid 从版本 21 迁移到版本 22

在版本 22 中,Ag-grid 从根本上改变了他们的代码,因此现在将其部署在模块中,主要来自两个新包 @ag-grid-community/all-modules 或 @ag-grid-enterprise/all-modules。他们网站上的文档完全不清楚如何成功迁移到新版本 22。特别是对于 Angular 应用程序。即使代码示例也不起作用(它们引用了未知模块@ag-grid-community/angular)。

有谁知道如何在 Angular 8 中将 Ag-Grid 从版本 21 迁移到版本 22?也欢迎任何有关企业版操作的信息。

migration ag-grid angular ag-grid-angular

5
推荐指数
1
解决办法
2958
查看次数

Ag-grid:在特定的预定义时间内保持打开的工具提示

我使用的是Ag-grid v23.1.1

我需要显示 1 分钟的工具提示。

Ag grid 不支持这种情况但在版本 22 的早期我已经使用了 next lifehack

params.api.context.beanWrappers.tooltipManager.beanInstance.MOUSEOVER_SHOW_TOOLTIP_TIMEOUT = 0;
params.api.context.beanWrappers.tooltipManager.beanInstance.DEFAULT_HIDE_TOOLTIP_TIMEOUT = 60000;
params.api.context.beanWrappers.tooltipManager.beanInstance.MOUSEOUT_HIDE_TOOLTIP_TIMEOUT = 3000;
Run Code Online (Sandbox Code Playgroud)

但在当前版本中(23)tooltipManager已被删除。

我们有TooltipFeature https://github.com/ag-grid/ag-grid/blob/master/community-modules/core/typings/widgets/tooltipFeature.d.ts

在新版本中名称已更改为:

 DEFAULT_HIDE_TOOLTIP_TIMEOUT;
    SHOW_QUICK_TOOLTIP_DIFF;
    FADE_OUT_TOOLTIP_TIMEOUT;
Run Code Online (Sandbox Code Playgroud)

同样的方法无效

您知道当前版本中有哪些生活窍门吗?

javascript reactjs ag-grid angular ag-grid-angular

5
推荐指数
0
解决办法
1471
查看次数

AgGrid:更改聚合标头名称

现在我有一列,例如名称是“age”

    {headerName: 'age', field: 'age', filter: 'agNumberColumnFilter', aggFunc: 'sum'}
Run Code Online (Sandbox Code Playgroud)

我在上面加了一个sum aggFunc,所以头名称的结果就变成了“sum(age)”

但是,我仍然想显示“年龄”,我该如何实现呢?

非常感谢

ag-grid ag-grid-angular

5
推荐指数
1
解决办法
1614
查看次数

Ag-grid 高亮单元逻辑无法正常工作

我使用ag-grid创建了一个可编辑的网,我需要突出显示已更改的单元格。我添加了以下代码:

    (cellValueChanged)="onDemandsCellValueChanged($event)"
Run Code Online (Sandbox Code Playgroud)

和方法:

    onDemandsCellValueChanged(params): void {
    if (params.oldValue === params.newValue) {
      return;
    }

    params.data.modified = true; // add modified property so it can be filtered on save

    const column = params.column.colDef.field;
    params.column.colDef.cellStyle = { 'background-color': '#e1f9e8' }; // highlight modified cells
    params.api.refreshCells({
      force: true,
      columns: [column],
      rowNodes: [params.node],
    });
  }
Run Code Online (Sandbox Code Playgroud)

该单元格突出显示,但是当我上下滚动时,该列中的所有单元格都突出显示。

您可以检查stackblitz上的行为。

此外,如果您有更好的方法来做到这一点,我愿意接受新的解决方案。

javascript grid ag-grid angular ag-grid-angular

5
推荐指数
1
解决办法
104
查看次数

服务器没有返回数据时ag-grid继续显示加载图标

我在 Ag-grid (Angular) 中遇到了奇怪的行为。当我使用 serverSide 选项并且服务器没有返回数据时,网格将显示 cacheBlockSize 中提到的所有行的加载图标。我尝试了尽可能多的选项来隐藏这些空的加载行,但没有任何结果。

我尝试在官方示例页面中复制相同的内容。幸运的是,我可以复制类似的行为。请参阅官方示例页面的编辑版本,其中我从假服务器调用中传递了一个空数组:

https://plnkr.co/edit/Egw9ToJmNE7Hl6Z6

  onGridReady(params) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;

    this.http
      .get('https://www.ag-grid.com/example-assets/olympic-winners.json')
      .subscribe((data) => {
        let idSequence = 0;
        data.forEach((item) => {
          item.id = idSequence++;
        });
        const server = new FakeServer(data);
        const datasource = new ServerSideDatasource(server);
        params.api.setServerSideDatasource(datasource);
      });
  }
}

function ServerSideDatasource(server) {
  return {
    getRows: (params) => {
      setTimeout(() => {
        const response = server.getResponse(params.request);
        if (response.success) {
          params.successCallback(response.rows, response.lastRow);
        } else {
          params.failCallback();
        }
      }, 2000);
    },
  };
}
function …
Run Code Online (Sandbox Code Playgroud)

ag-grid ag-grid-angular

5
推荐指数
1
解决办法
4717
查看次数