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上的控件。

原文地址:https://www.cnblogs.com/howlaa/p/2622027.html