在重新打开时出现错误的ext窗口

时间:2011-03-14 18:26:35

标签: extjs

我有一个复选框,触发一个功能,打开一个带有网格和表单的小窗口。 如果closeAction:'close'关闭后窗口没有重新打开(某些错误)。 如果closeAction:'hide'窗口重新打开,而不是其项目。

我知道我可以通过id:Ext.id()来解决问题,尽管我有其他使用id的函数。 有没有办法重新打开窗口没有这些问题? 创建窗口的部分功能,没什么不寻常的:

var errWindow = new Ext.Window({
        width:300,
        title:headerStr,
        closeAction:'hide',
        items: [errForm,problemsGrid]
    });
errWindow.show();

表单中的项目的ID类似于:“textfieldNumber1”。没有id的everithing工作正常,但有了它们我得到这个enter image description here

3 个答案:

答案 0 :(得分:5)

如果您使用默认的closeAction: 'close',则无法使用show()重新打开该窗口。如果您使用closeAction: 'hide',则可以显示和隐藏窗口,但您必须使用hide()show()调用执行此操作。无论close()设置为什么,对closeAction的调用都会破坏窗口。

答案 1 :(得分:1)

是否要在用户点击关闭时销毁您的表单,同时保持窗口隐藏以便重复使用?

如果是的话,

  1. 收听 beforeClose 事件,并从窗口项目中删除表单
  2. 致电windows.hide()
  3. 此外,您需要添加新表单(因为您已将其销毁),同时再次显示窗口。听 beforeShow 来做到这一点。

答案 2 :(得分:0)

我遇到了同样的问题。正如“Narenda Kamma”之前已经提到的那样,需要先听之前关闭然后调用destroy函数。见下面的例子

var me = this

   this.window.on("beforeclose",
                     function (com, eOpts) { me.closeWindow() });