前面说到了CardLayoutd和TabPanel使用起来感觉布局有点不好调试,或者说这两者结合更不好调试。
首先,CardLayout是FitLayout的子类,它可以使内部的组件自适应填充,那么内部组件的Width、Height由外部的CardLayout布局的组件决定,布局为CardLayout的组件Width、Height必须确定,准确的是是可以让ExtJs框架去自动计算,那么这时候CardLayout的组件需要有固定的Width、Height,或者放在FitLayout、BorderLayout(region:center)。
那么,TabPanel中嵌套CardLayout呢?根据上面的约定,Tab中的某个sheet如果嵌套了CardLayout,那么需要为CardLayout开辟出一个可以让ExtJs计算出来的空间。当然这又涉及到了TabPanel和Card的渲染问题,默认情况下(延迟加载)Tab的各个sheetafterRendered后init,那么Tab中的card的render会比外部tab的init要迟些,这样如果需要获取card中的组件需要在card组件afterrendered后进行操作,还有就是数据量太大的话,tab的数据加载最好每个sheet页面afterrender后初始化
-------------------------------------------------------------------
以上是总结出来的,代码怎么写应该明白了。下面再说一个TabPanel中的某个sheet是TreeGrid的问题,如果TabPanel中的某个sheet中的数据会变,导致这个TreeGird的列要动态的增删,那么可以将这个sheet下的items(其实就一个)进行removeALL(true)
这个sheet的布局如果往常的习惯我会设定为borderLayout布局,将这个TreeGrid设置为region:center
这样做removeAll的话,问题来了,no region center exception,BorderLayout中的region区域的是不允许做removeALL(),并doLayout()的。
如果按照我上次说的再这个BorderLayout中region区域在放一个Container(FitLayout),将TreeGrid放在这个Container中,做增删没有问题,但是问题又来了
这个Container在做removeALL(),并doLayout()后,TreeGrid中的数据不能显示,当用ff或者goole的浏览器查看元素会发现数据好好的放在那里,然后我们手动改变一下浏览器窗口大小,触发TreeGrid的onResize()方法,这时候数据出现了。当这也解决不了问题啊,最后的方案是:
TabPanel的某个sheet的布局设置为CardLayout,在这个sheet中放一个TreeGrid,可以替换这个TreeGrid,然后getLayout().setActiveItem(treeGrid); sheet.doLayout(),接着TreeGrid正常出现,数据也好好的放在那里。
分享到:
相关推荐
然而,在ExtJS中,由于我们通常是在组件层次上操作,直接使用`document.getElementById()`可能会导致代码难以维护,且无法充分利用ExtJS提供的丰富API。因此,对于ExtJS组件,建议优先使用`Ext.getCmp()`来操作。 #...
在学习和使用ExtJS的过程中,我们需要了解其基础构成,如何引用库文件,以及如何通过各种控件实现丰富的交互效果。 首先,要开始使用ExtJS,必须了解其构成及如何引用。ExtJS由几个关键部分组成,包括Ext Core...
ExtJS支持多种布局管理器,如CardLayout、BorderLayout等,使得页面布局更加灵活多变。 ### ExtJS的关键特性 #### 强大的数据处理能力 ExtJS提供了强大的数据处理能力,包括数据模型、数据存储、数据代理等模块,...
2. **布局管理**:ExtJS 提供了多种布局方式,如 `FitLayout`、`BorderLayout` 和 `CardLayout` 等,可以帮助开发者轻松地管理和调整界面布局。 3. **数据绑定**:ExtJS 支持数据绑定,可以方便地将数据模型与视图...
- **布局方式**:Extjs面板支持多达10种不同的布局方式,包括但不限于`BorderLayout`、`CardLayout`、`FitLayout`、`TableLayout`等。这些布局方式允许开发者以非常灵活的方式组织面板内部的内容。 - **嵌套**:...
2. **布局管理**:ExtJS支持多种布局方式,如边界布局(`BorderLayout`)、卡片布局(`CardLayout`)等。 3. **常用组件**:包括`Ext.grid.GridPanel`(表格)、`Ext.tree.TreePanel`(树形视图)、`Ext.form.FormPanel`...
15.5 在IE中使用Firebug 15.5.1 前端调试利器DebugBar 15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 ...
- **布局管理**:理解如何利用 ExtJS 内置的布局管理器(如 `BoxLayout`, `CardLayout` 等)对容器内的组件进行布局设置。 - **事件绑定**:学习如何为组件绑定事件处理器,例如点击按钮触发特定操作。 #### 五、...
### EXTJS 4 Web应用程序开发宝典 #### 知识点概述 ...总之,《EXTJS 4 Web应用程序开发宝典》是一本非常适合初学者和有一定经验的开发者使用的指南,无论是想要入门还是进一步提升技能,都能从中受益匪浅。
在EXTJS中,页面布局是至关重要的,因为它决定了用户界面的组织和交互方式。文档"extjs_页面布局.doc"详细介绍了EXTJS中的10种布局类,这些布局类帮助开发者有效地管理组件在容器内的排列和展示。 1. **...
15.5 在IE中使用Firebug 15.5.1 前端调试利器DebugBar 15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 ...
在ExtJS中,布局管理是至关重要的部分,因为它决定了用户界面组件如何在容器内排列和展示。布局管理器负责根据指定的布局类型调整和定位组件,以适应不同场景的需求。以下是关于ExtJS布局的详细解释: 1. **基本...
为了在项目中使用 ExtJS,需要在 HTML 文件中通过 `<script>` 标签引入相应的 JS 文件。可以通过以下方式下载最新版本的 ExtJS: 1. **官方网站**: [www.sencha.com](http://www.sencha.com)。 2. **GitHub**: ...
Extjs提供了灵活的布局管理机制,允许开发者通过多种布局管理器(如BorderLayout、CardLayout、FitLayout等)来控制组件在页面中的布局。 综上所述,Extjs的工具栏和菜单组件的设计为Web开发者提供了一种直观而强大...
#### 二、EXTJS的基本使用 1. **页面引用** - 引入样式文件:`<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>` - 引入核心脚本文件:`<script type="text/javascript" src="...