2012/8/3 Extjs使用TabPanel时需要注意的问题

在创建Ext.TabPanel时,配置项deferredRender经常会被忽略,关于这个配置项,我们来看一下API文档的解释:“内置地,Tab面板是采用Ext.layout.CardLayout的方法管理tabs。此属性的值将会传递到布局的Ext.layout.CardLayoutdeferredRender配置值中, 以决定tab面板是否只有在第一次访问时才渲染(缺省为true)。内置地,Tab面板是采用Ext.layout.CardLayout的方法管理tabs。此属性的值将会传递到布局的Ext.layout.CardLayoutdeferredRender配置值中, 以决定tab面板是否只有在第一次访问时才渲染(缺省为true)。”所以当我们有可能使用脚本操作选项卡时,务必将该配置项设置为false。在FormPanel中使用tabpanel,如果不将其定义为false,那么当你使用Load方法为form加载数据,或使用setvalue为没有激活过的Panel控件赋值时,将会发生错误。原因是,在默认设置下,在默认设置下deferredRender为true,TabPanel并不会渲染所有Panel上的控件,只有在该Panel被激活时才渲染控件,所以当你为这些控件设置数据时,将会找不到这些控件,会出现错误。因而,在FormPanel中使用TabPanel,一定要在TabPanel中设置deferredRender的值为false,强制TabPanel在Layout渲染时同时渲染所有Panel上的控件。

posted @ 2012-08-03 17:39  呼啸而过  阅读(494)  评论(0编辑  收藏  举报