【问题标题】:Ag-grid trigger events from outside来自外部的 Ag-grid 触发事件
【发布时间】:2021-01-14 06:13:34
【问题描述】:

我正在使用 ag-grid。我在gridOptions 中定义了事件处理程序:

gridOptions = 
{
...
onCellEditingStarted: function (event) { /* magic happens!*/ },
onCellEditingStopped: function (event) { /* magic happens!*/  }
...
}

当单元格编辑开始/停止时 - 一切正常。但在某些时候,我需要从其他 .js 文件触发这些事件,我什至没有 ag-grid 实例。

我正在尝试这样的事情:

$(window).trigger('cellEditingStopped');

但不幸的是,它不起作用。我究竟做错了什么?是否可以通过这种方式触发 ag-grid 的事件,或者我需要编写更多代码?

【问题讨论】:

  • 您需要附加对象引用,以便您可以从其他JS文件访问网格。
  • 是的,没有参考是不可能触发事件的。我找到了解决我的问题的方法。稍后会为其他用户写答案
  • 是的,即使我也在做同样的事情,因为有多个 JS 文件在其中我正在处理图表数据。

标签: javascript ag-grid jquery-events


【解决方案1】:

这是我为实现目标而找到的解决方案:

gridOptions = 
{
...
onCellEditingStarted: function (event) { /* magic happens!*/ },
onCellEditingStopped: function (event) { /* magic happens!*/  }
onGridReady: function() {
                $('#gridContainer').off("cell-editing-stop");
                $('#gridContainer').on("cell-editing-stop", function () {
                    gridOptions.api.stopEditing();
                });
            },
...
}

所以在我的其他文件中我可以这样做:

that.OnCellEditingStop = new Event('cell-editing-stop');
$('#gridContainer').trigger('cell-editing-stop');

这个解决方案对我来说看起来很干净,我不必以某种方式将我的网格实例移动到另一个文件。希望它会以某种方式对其他人有所帮助

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2020-04-06
    • 2021-11-05
    • 1970-01-01
    • 2018-08-19
    • 2016-01-17
    • 2020-06-12
    • 2020-04-06
    • 2017-12-12
    相关资源
    最近更新 更多