这里的经验不是指对这种框架总体上面的一些介绍,只是记录了本月中使用ExtJs中遇到的3个问题的解决方法,这里还是要感谢Extjs论坛的Animal和Condor,每次在我遇到拦路虎的时候,总能在他俩的Tread中找到对应的解决办法。好了下面来讲遇到的这三个问题:
1.penel中item被remove后不能被再次引用:
我遇到的一种问题是,我有2个panel,panel1为主面板,panel2为panel1的子面板,即panel2在panel1的items集合中,在我的应用中,我需要动态切换panel1的items中的内容,我采用的是panel面板的方法panel1.remove(panel2),但是这样操作之后再次调用add(panel2)的话会报extjs的错误,一旦panel2被remove后,它会调用panel2的destory方法进行销毁,导致下次没办法再调用之前的panel2,而新创建的panel2又不符合要求(没有了之前的状态数据),解决办法如下,code:
panel1.remove(panel2, false);
panel2.hide();
采用这两句之后,panel2会被从panel1中移除,但又不会被销毁,那么下次还可以通过panel1.add(panel2)把panel2再加进来进行重复使用。
2.borderlayout布局中中不能动态替换组件:
呵呵,如果你的主面板的布局是borderlayout,那你不要指望能动态替换主面板的儿子级组件,因为ExtJs的官方文档里明确说了不支持对borderlayout类型的面板的组件进行动态替换,而且我也尝试了很多次都不成功,但是我们可以换个思路,去动态替换孙子级组件,我们看代码:
zkyg.main.view = new Ext.Viewport({
layout: 'border',
border: false,
frame: false,
items: [{
region: 'north',
height: 41,
contentEl: 'header'
},
new Ext.Panel({
region:'center',
layout:'fit',
id: 'mainPanel',
items: [zkyg.main.centerPanel]
})]
});
//其他的一些业务逻辑-------------------------------------------
if(Ext.getCmp('mainPanel').items != undefined){
Ext.getCmp('mainPanel').items.each(function(item){
Ext.getCmp('mainPanel').remove(item, false);
item.hide();
});
}
zkyg.vm.viewPanel.show();
Ext.getCmp('mainPanel').add(zkyg.vm.viewPanel);
Ext.getCmp('mainPanel').doLayout();
如果我们直接去替换mainPanel这个面板,明显是不成功的,但是我们可以将mainPanel固定,设置它本身的布局类型为fit类型,然后去动态替换它的子面板,这样操作是没有问题的,也就是上面讲的borderlayout你不要去替换儿子级组件,而是去替换他的孙子级组件。
还有一点,如果存在多层嵌套的面板(上中下三层)要进行动态替换的时候,最好将面板类型设置为Ext.Container类型,因为如果设置成Ext.Panel类型的话,在IE8及以下版本的IE浏览器中存在兼容性问题,add/remove方法可能会不成功。
3.store中多个字段如何进行合并:
实际工作中经常要用到把store中多个字段合并的问题(本来我有很多例子,但是一想说起来太麻烦,就不举例了,呵呵),直接看代码吧:
var vmstore = new Ext.data.JsonStore({
url: '/vmmanage/query.do',
root: 'rows',
fields: [{name:'id',mapping:'id'}, {name: 'displayx',mapping: 'id + "(" + obj.nickname+")"'}]
});
再举个例子:
var reader = new Ext.data.ArrayReader({}, [
{name: 'full_name', type: 'string', mapping: 'first_name + " " + obj.last_name'},
{name: 'age'}
]);
var grid = new Ext.grid.GridPanel({
store: new Ext.data.Store({
reader: reader,
data: Ext.grid.dummyData
}),
columns: [
{header: 'Full Name', dataIndex: 'full_name'},
{header: 'Age', dataIndex:'age'}
]
});
通过mapping字段来构造一个适合自己的reader,就可以解析复杂的字段间的组合操作了。
分享到:
相关推荐
在使用过程中,要特别注意ExtJS的MVC(Model-View-Controller)架构,这是其设计的一大亮点。通过模型管理数据,视图展示数据,控制器协调两者,可以使代码结构清晰,易于维护。此外,利用Data Binding功能,可以...
**ExtJS API中文手册**是学习和使用ExtJS的重要参考资料,尤其是在没有英文阅读基础的情况下。手册中涵盖了ExtJS 3.3的所有类、方法、事件、属性和配置选项,对于开发者来说是不可或缺的工具。 1. **组件系统**:...
总之,“extjs中文帮助文档和英文api”是ExtJS开发者的必备资料,无论你是初学者还是经验丰富的开发者,都能从中获取到有价值的信息,提升你的开发效率和应用质量。利用好这两份资源,将使你在ExtJS开发的道路上更加...
由于直接从图像内容中提取文本可能会有误读或遗漏,因此在使用ExtJs2.0中文手册时,建议结合官方文档和社区论坛以获取准确的信息。同时,面对OCR扫描出的文字,需要仔细核对并理解上下文意思,以保证学习和应用的...
EXTJS是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。EXTJS 3.0是该框架的一个重要版本,它提供了一系列先进的组件和功能,...对于EXTJS的初学者和有经验的开发者来说,这都是一份非常宝贵的资源。
在ExtJS3.0中,核心概念包括: 1. **组件(Components)**:ExtJS的基础是组件化,它提供了一系列预定义的UI组件,如按钮、表格、面板、窗口等。这些组件可以独立使用,也可以组合创建复杂的用户界面。 2. **布局...
无论你是新手还是有一定经验的开发者,ExtJS都能够帮助你快速上手并实现复杂的前端功能。 - **目标受众**:本手册适用于已经具备基本JavaScript和HTML DOM知识的读者。对于初学者来说,通过阅读本文可以快速掌握...
描述中提到的“ExtJS3.3的开发文档,可以方便查询各个类的使用说明!”揭示了这个CHM文件( Compiled HTML Help,微软的一种帮助文件格式)的内容。开发者可以通过这份文档快速查找ExtJS 3.3中的各个类,了解它们的...
ExtJS是一个强大的JavaScript库,专为构建富互联网应用程序(RIA)而设计。它提供了一套完整的组件模型,包括数据绑定,强大的...对于希望在Web应用开发中使用ExtJS的人来说,这份资料无疑是一个不可或缺的学习工具。
综上所述,《Extjs6示例中文版》不仅提供了详细的ExtJS6教程,还分享了作者的实践经验和个人见解,这对于想要深入学习和掌握ExtJS6的开发者来说是一份宝贵的资源。通过学习本书,读者不仅可以了解ExtJS6的基础知识和...
在这一版本中,开发者可以学习如何创建基本的组件,如面板(Panel)、窗口(Window)和表格(Grid),以及如何使用数据存储(Store)和视图(View)进行数据绑定。此外,3.1.1版本还引入了Ajax请求的扩展,使得异步...
手册中的实例通常包含实际的代码片段,这些代码展示了如何在项目中使用特定的API或实现特定的功能。通过阅读和理解这些实例,开发者可以更好地理解ExtJs的工作原理,并能将所学应用到自己的项目中。每个实例都会配有...
1. **ExtjsOOP基础**:Ext.js在2.0版本中加强了对面向对象编程的支持,文档中会介绍如何定义JavaScript类,以及如何使用Extjs命名空间和类的继承。这里也会提到Extjs的OOP特性和配置选项的使用方法。 2. **消息框的...
下面将详细讲解ExtJS 3.3的一些核心知识点: 1. **组件系统**:ExtJS的核心在于其强大的组件模型,包括按钮、表格、面板、窗口、表单等。开发者可以通过组合这些组件构建复杂的用户界面。每个组件都有自己的属性、...
下面是一些关于ExtJs使用的基础知识和常见技巧。 1. **基础布局**: - 引入文件:ExtJs的使用首先需要引入相应的CSS样式表和JavaScript库。`ext-all.css`提供了UI的样式,`ext-base.js`是基础的JavaScript库,`ext...
ExtJS教程全面介绍了ExtJS框架的基本功能和高级特性,适用于有Web开发经验的开发者,尤其是希望快速构建丰富用户界面的人员。ExtJS是一个基于JavaScript的开源前端框架,它提供了丰富的用户界面组件和数据处理机制,...
标题中的“经验总结-Extjs(一)数据交互设计”表明了本文主要关注的是ExtJS框架在实现数据交互方面的设计和实践经验。ExtJS是一个流行的JavaScript库,用于构建富客户端Web应用,尤其以其强大的数据管理、组件化和...
ExtJS 是一个强大的JavaScript ...这个示例项目对于初学者和经验丰富的ExtJS开发者来说都是宝贵的资源,它提供了实践和学习ExtJS的最佳途径。通过实际操作和研究,可以加深对框架的理解,提升开发Web应用程序的能力。
这个中文API文档版本3.3为我们提供了关于ExtJs 3.3版本的详细信息,包括各种组件、类、方法和事件的说明,使得开发者在使用这个框架时能更加得心应手。下面将详细介绍ExtJs 3.3中的主要知识点。 1. **组件体系结构*...