`
javapolo
  • 浏览: 131882 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

extjs4 组件添加陷阱

 
阅读更多

今天在写extjs代码时发现了个extjs的一个很隐秘陷阱,就是在采用borderlayout的布局时,当你想更换这个布局里面的组件时,会报一个节点插入异常的错误,自己感觉很奇怪,因为自己一般通过直接获取一个panel,然后直接调用该panel的add方法可以直接将组件添加其中,但采用borderlayout布局时却始终报错,到底问题出在哪里?

google了下发现没什么好的解决方案,最后还是自己老老实实去看文档,发现了下面一些话,忽然间恍然大悟

 

If the Container was configured with a size-managing layout manager, the Container will recalculate its internal layout at this time too.

Note that the default layout manager simply renders child Components sequentially into the content area and thereafter performs no sizing.

 

组件父容器会根据添加进去的组件大小计算,并做dolayout,下面的语句是关键语句

 

Warning:##

Components directly managed by the BorderLayout layout manager may not be removed or added. See the Notes for BorderLayout for more details.

 

用borderlayout布局管理器管理的组件不会直接remove或者add,接下来看看为什么这样以及如何解决这个问题?

 

The regions of a BorderLayout are fixed at render time and thereafter, its child Components may not be removed or added.To add/remove Components within a BorderLayout, have them wrapped by an additional Container which is directly managed by the BorderLayout. If the region is to be collapsible, the Container used directly by the BorderLayout manager should be a Panel.

 

 

原来布局管理器里面的组件在渲染时就会被固定,解决组件添加的问题可以采用包装的方式,即在布局管理器的每个部分(例如west,east)包装一个panel,每次添加组件时,可以直接获取外层的panel,然后通过它来实现添加就可以了

 

这样问题就可以顺利解决!

 

分享到:
评论

相关推荐

    extjs 学习心得笔记

    3. **组件事件处理**:熟悉ExtJS中的事件机制,学会如何为组件添加事件监听器,这对于响应用户交互、更新数据模型等操作非常重要。 4. **数据绑定与模型使用**:掌握ExtJS的数据绑定机制,了解如何使用模型(Model)...

    extjs实现报表

    - **图表集成**:利用ExtJS的Chart组件,可以将数据可视化,如柱状图、折线图和饼图。 - **自定义渲染器(Renderer)**:为列值设置自定义格式或逻辑,增强数据展示效果。 4. **排序与过滤** - **列排序**:允许...

    EXtJS学习 EXtJS学习

    EXTJS 学习:深入理解 `Ext.extend` 及其在继承中的陷阱 EXTJS 是一个强大的 JavaScript 框架,用于构建富客户端应用程序。它提供了丰富的组件库和强大的数据绑定机制。在 EXTJS 中,`Ext.extend` 是核心的继承机制...

    EXT开发过程中的心得

    - Firefox浏览器与其他浏览器相比,在显示EXTJS组件时可能会出现轻微的偏移。为了解决这一问题,可以引入一个额外的CSS文件`ext-patch.css`来调整样式。 8. **语言包的加载顺序:** - 确保语言包文件(例如`ext-...

    简单了解常用的JavaScript 库

    ExtJS是一个用于创建富Internet应用程序的JavaScript库,它提供了一系列可定制的widget,以及丰富的组件,让开发者能够构建功能强大的交互式界面。Dojo是一个功能全面的JavaScript工具包,它专注于DOM操作、事件处理...

Global site tag (gtag.js) - Google Analytics