【问题标题】:Get ag-grid instance by container div Id通过容器 div Id 获取 ag-grid 实例
【发布时间】:2019-05-18 00:13:11
【问题描述】:

我知道,为了生成新的 ag-Grid,我们可以执行以下操作:

    new agGrid.Grid(gridDiv, gridOptions);

其中 gridDiv 是 ag-grid 的“容器 div”,而 gridOptions 是网格的选项。

如果我有它的“容器 div”ID,是否可以获取网格实例? 我基本上想访问它的gridOptions / gridOptions.api

【问题讨论】:

  • 如果您的 gridOptions 仍然可供您使用,则在创建网格后,该对象将包含对您的网格 api 和列 api 的访问权限
  • 你有没有找到这样做的方法?
  • 在创建Grid时保存它?您是否有权访问代码,或者您正在尝试从使用 apGrid 的某个第三方获取数据?

标签: javascript ag-grid


【解决方案1】:

此答案假定您有权访问代码。

如果您可以控制gridOptions,则可以访问 API。一旦网格被初始化,这意味着在执行此行之后

new agGrid.Grid(eGridDiv, gridOptions);

它将gridApicolumnApi 传递给您的gridOptions。您可以开始随心所欲地操作桌子。这是一个小例子

// at this point you don't have accesss to the API yet
var gridOptions = {
  columnDefs: columnDefs,
  rowData: rowData,
};

var eGridDiv = document.querySelector('#myGrid');

// initialize ag-grid
new agGrid.Grid(eGridDiv, gridOptions);

// grid APIs are ready, we can print current column state for example
console.log(gridOptions.columnApi.getColumnState());

setTimeout(() => {
  var sort = [
    { colId: 'price', sort: 'desc' },
  ];
  gridOptions.api.setSortModel(sort);
}, 2000)

观看现场演示here

参考

【讨论】:

  • 这并不能真正回答问题。如果 gridOptions 不可用,并且您想在之后从元素中检索网格实例 - 这就是问题需要答案的原因。
  • 您能详细解释一下您的情况吗?为什么gridOptions 在您的情况下无法访问?
  • 如果你正在编写一个 e2e 测试,它会很好,能够与网格交互,例如用于滚动。我曾经尝试为小部件选择实现一些热键,并试图告诉 ag-grid 获得焦点。在没有 API 的情况下无法工作;我必须创建一个自定义事件并在我的小部件中侦听此事件才能将调用传递给 ag-grid。
猜你喜欢
  • 2016-08-09
  • 1970-01-01
  • 2017-11-13
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2020-10-04
  • 2017-05-19
相关资源
最近更新 更多