Extjs 5 参考网格通过停靠按钮的单击事件而不使用.up?

Extjs 5 reference grid by docked button's click event without using .up?

我目前有一个带有按钮的网格,单击该按钮可对网格中的记录进行操作。目前我使用 button.up('selector'); 来获取网格,但感觉有点 hacky。我认为也许通过将点击事件选择器更改为 grid [action=buttonAction] 而不仅仅是 [action=buttonAction] 可能会给我网格的上下文,但事实并非如此。有没有比 button.up 更简洁的方法来引用网格?

var dockedItems = new Ext.toolbar.Toolbar({
                    items: {
        text: 'Do a thing',
        action: 'actionForTheThing'
    }
            });

 Ext.grid.Panel({
                store: this.store,
                dockedItems: dockedItems,
 });

然后在 Ext.app.Controller 控制器中我定义了一个处理程序

        this.control({
        '[action=actionForTheThing]': {
            click: this.handleTheThing
        },

       handleTheThing: function(button, click){
          //Here I have the button, but I want to get to the grid that has the button
          // Right now I can do button.up(''), but I want more of a strict relationship
          //like button.getParent(); or something.
       };

没有,没有。

按钮的点击事件始终以按钮作为第一个参数触发,要更改它,您必须在按钮上创建覆盖,覆盖 fireHandler 方法,其中 click 事件被触发:

me.fireEvent('click', me, e)

http://docs.sencha.com/extjs/6.2.1/classic/src/Button.js.html#line1643