今天做任务碰到一个问题:左边是一颗树,右边是一个grid的布局;当点击左侧树的时候可以动态的“替换”掉右边的grid。
由于右侧的grid是被二次封装过的,所以不能简单的用之前替换url的方法去解决这个问题。所以想到动态去替换panel中的item方法。这个有两个解决的方法,解法不同但是本质上都是操作一个先定义好的容器panel,再对其中需要的组件进行操作。
(以下的示例没有贴完全的代码,部分实现需要自己去完成,如触发事件如何去写)
第一个:在viewport的center里先定义好一个容器panel,然后把要替换的组件加到此panel里
示例代码:
//定义主面板
this.panel=newExt.Panel({
region:'center',
margins:'1111',
layout:'fit',
items:[viewPanel]
});
new Ext.Viewport({
layout:'border',
title:'替换右侧grid',
items:[this.tree,this.panel]
)}
//这里填写树的触发事件
tree.on("click", function(){
this.panel.add(viewPanel);//
this.doLayout();
})
第二个:第二个方法不是用“替换”,而是利用新的布局cardLayout,具体示例:
varpanel=newExt.Panel({
region:'center',
layout:'card',
activeItem:0,
items:[initPanel] //初始化时需要显示的grid
});
tree.on("click",function(){
panel.add(xxx); //xxx代表你要添加的grid
panel.getLayout().setActiveItem(1); //利用cardLayout特有的方法,直接显示第二个item
});
分享到:
相关推荐
在Ext JS这个强大的JavaScript框架中,Panel是一种常用的组件,用于构建复杂的用户界面。Panel提供了丰富的功能,包括布局管理、工具栏、标题、可配置性等。然而,有时我们需要对Panel进行自定义,例如添加或修改...
EXT dojochina Ext方法重写是一个关于EXT.js框架中函数重写的专题。EXT.js是一个流行的JavaScript库,用于构建富客户端应用,它提供了丰富的组件、布局管理和数据绑定机制。在EXT.js中,方法重写是一种常见的实践,...
EXT JS中的表格分页通常通过Grid Panel组件实现,该组件可以与数据存储(Store)配合,数据存储负责管理数据,包括加载、过滤、排序和分页。分页功能由Pager Toolbar组件提供,它是一个可自定义的工具栏,包含导航...
EXT的布局系统是其强大之处,它允许开发者灵活地组织组件,如面板(Panel)、窗口(Window)等。在登录示例中,`FromPanel`通常被用来展示登录表单,包含用户名和密码输入框,以及登录按钮。`FromPanel`的布局可以是...
首先,EXTJS中的`Ext.form.Panel`组件是实现多文件上传的基础。我们需要创建一个包含`Ext.form.FileField`的表单,这是EXTJS中用于处理文件输入的组件。在`FileField`中,我们可以通过设置`multiple`属性为`true`来...
- **ExtJs2.0学习笔记(Ext.Panel篇一/二/三/四)**:这一系列内容分别讲述了`Ext.Panel`的不同方面,如布局管理、事件处理等。 - **ExtJs2.0学习笔记(组件总论篇)**:这是一个综合性的章节,概括了Ext JS 2.0中各种...
这意味着`el`主要用于创建或绑定组件的外壳,而不会将div内的内容自动迁移到Panel中。 2. **contentEl(Content Element)** `contentEl`属性则不同,它用于指定一个已经存在的DOM元素的ID,该元素会被作为组件的...
例如,我们可以创建一个名为`MyCustomGrid`的类,继承自`Ext.grid.Panel`,并在子类中添加新的功能,如自定义渲染器、事件处理等。 在OOP的视角下,继承允许我们保持代码的复用性。通过覆盖父类的方法,我们可以...
-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event ...
在ExtJS的Panel中嵌入BIRT报表,可以创建一个新的Panel组件,并将包含BIRT报表的IFrame作为其HTML内容。如示例所示,IFrame的src属性指向BIRT Viewer的URL,带上报表设计文件名及所需参数。 5. **BIRT Report ...
- **Ext.Panel**、**Ext.window.Window**和**Ext.container.Viewport**:面板、窗口和布局控件的使用。 - **Ext.tab.Panel**:详细讲解了选项卡的创建和操作。 - **Ext.ListView**和**Ext.view.View**:数据视图的...
var panel = Ext.create('Ext.panel.Panel', { layout: 'fit', items: [ { xtype: 'grid' } ] }); ``` 2. **Border 布局**: - 边框布局允许将父容器划分为北、南、东、西和中心五个区域。 - 每个区域可以...
这里的`path/to/`应替换为实际的ExtJS库文件路径。引入库后,ExtJS会自动执行初始化过程。 接下来,我们需要创建一个应用的基本结构。ExtJS 5.0引入了MVVM(Model-View-ViewModel)架构模式,简化了应用的组织。...
在调整布局或者改变主题时,这些图片可能会被替换或修改。 `js`目录是核心部分,存放了ExtJS 3.1的JavaScript库和相关的脚本文件。其中,`ext-all.js`或`ext-core.js`是基础库,包含了许多基础组件和功能。`ext-...
在这个例子中,`MemoryProxy`被用作数据源,但也可以替换为`ScriptTagProxy`等其他代理,以便从远程服务器加载数据。最后,`GridPanel`对象被创建,指定了渲染目标、数据源、列模型、选择模型等属性。 ### 总结 ...
- 设置Panel的基本属性,如ID、标题、布局等。 - 通过HTML代码创建一个IFrame元素,该元素用于加载报表内容。 3. **IFrame配置:** - 定义IFrame的ID为`me.reportFrameId`。 - 设置IFrame的`src`属性为报表...