ExtJS动态地将事件处理程序添加到列编辑器

时间:2016-02-15 11:16:37

标签: extjs

我想在加载时动态地向列编辑器添加事件处理程序。它是在网格中填充任何数据之前。我无法在列的编辑器属性(column.editor.on)上找到'on'方法,就像我在普通组合框中找到的那样。我使用的是最新的ExtJS 6版本。我已将列定义为

    {
        xtype: "gridcolumn",
        text: "Available?",
        draggable: false,
        lockable: false,
        hideable: false,
        dataIndex: "Availablility",
        editor: {
            xtype: "combobox",
            forceSelection: true,
            typeAhead: true,
            store: [["Y","Yes"],["N","No"],["U","Not known"]],
            queryMode: "local",
        }
    }

我在这里做错了吗?我假设编辑器组合框在稍后我们有数据时被初始化,我们尝试在网格上编辑。但我想在网格负载上动态设置一些事件。有办法吗?

更新:当我们尝试编辑某行时,'on'方法可用,但在初始加载网格时不可用。有没有办法暂时初始化编辑插件以在数据加载之前附加事件处理程序?

1 个答案:

答案 0 :(得分:1)

我可以为您提供两种解决方案:

  1. 通过编辑器的listeners配置添加事件处理程序(实际上Ext.util.Observable.onExt.util.Observable.addListener的别名,listeners属性使用addListeners。)< / p>

      

    包含一个或多个要在初始化期间添加到此对象的事件处理程序的配置对象。这应该是addListener示例中指定的有效侦听器配置对象,用于一次附加多个处理程序。

  2. 在控制器中监听此组合事件,例如

    'myGrid combo [name = myCombo]':{     改变:this.myHandler }