如何将MessageBox的实例从网格传递给控制器​​?

时间:2013-11-20 14:20:44

标签: extjs messagebox args

我需要传递MessageBox的实例,以便我可以在控制器内部的Ajax请求的成功函数中关闭它。这样,我就不需要为控制器添加引用来查找我的消息框了。

this.win = Ext.create('Ext.window.MessageBox',{
    buttonAlign: 'left'      
   ,buttons:[
    {
      text: "This Only"
     ,scope:this
     ,handler: function() {
        this.fireEvent("eventName",{type:"all",  // i presume my messagebox is simply passed in here, I just dont know HOW });
      }
    }
  ]

提前谢谢你!

1 个答案:

答案 0 :(得分:0)

您需要在被触发的事件中传递引用,例如

this.fireEvent("eventName",{type:"all", this.up('window') });

您传递this.up('window'),因为this指的是被点击的按钮,您需要向上遍历DOM以获取父窗口。然后在您的事件中,您可以访问窗口实例作为事件中的第二个参数 - 并且可以使用它来实现(.e.g window.close();

n.b。我不记得你是否可以更好地使用this.up('messagebox')