2009年4月15日星期三

Ext.Window 问题总结

Ext.Window 是Ext中最漂亮的widgets之一。但是在实际开发中问题多多。
关于隐藏:
  • 问题:作为一个重量级widgets,为了减少资源的消耗,每当关闭时,window默认为隐藏模式,可是每次你再打开这个window的时候,会发现window中的数据(我的习惯是在window中嵌套formPanel,我所指的数据是formPanel中的数据)可能并没有变,或者说更新。其中大部分原因,要么是formPanel没有load数据,要么是window初始化的时候把某个数据传给了某个监听器或者handler,而再次打开window的时候,数据并没有传过去。
  • 办法1:这种办法就是不用隐藏,每次都打开,在关闭window的监听器中,或者关闭window的时候distroy这个对象,记住在这之前一定要把这个window中引用到的其他对象也要distroy掉,之后在把它们的引用设为null。办法比较土,但是管事,好使。这样做一定记住设置closeAction:'close'
  • 办法2 不distroy任何对象,把一种办法中出现混淆的变量以参数的形式传给handler。在这里一定要关注的是嵌套在windows中的formpanel中的隐藏域,load数据的时候一定要保证所有的field都是load出来的。最后加一个mask,保证load的完整性。closeAction:'hide'。

1 条评论: