昨天心血来潮,想把自己用extjs3.4作为UI的一个原型升级到最新的extjs4.2.2。
几年前曾经将原型从2.1升级到3.4,对于extjs的版本不兼容深深伤害过。最近两年就没有跟进。
Extjs4采用前端MVC的结构,使得整个前端代码的规划更加规范,更适合多人协作编写复杂的界面。新版的neptune theme也让看厌了ext外观的人眼前一亮,我就是为了这个外观升级的。
所以升级的策略是代价最小,并不将原来的逻辑重构为MVC,而只是修改在extjs4中变化的API和语法形式。经过两天的奋战,还算顺利——到目前位置还没有遇到在新版中无法替代的老版功能实现。
改造过程中,将遇到的问题逐一记录,以供后来者参考。
用途 |
强制editorGrid结束编辑状态 |
Extjs3.4 |
stopEditing( [cancel] ) |
链接 |
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.grid.EditorGridPanel-method-stopEditing |
Extjs4.2.2 |
无 |
链接 |
我的理解是extjs智能处理了,不劳编程者费心了 |
用途 |
根据给定位置获取子元素 |
Extjs3.4 |
itemAt( index ) : Object |
链接 |
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.util.MixedCollection-method-itemAt |
Extjs4.2.2 |
取消了,如果是数组,直接通过下标应用 |
链接 |
|
用途 |
获得grid状态栏工具条 |
Extjs3.4 |
grid.getBottomToolbar(); |
链接 |
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.Panel-method-getBottomToolbar |
Extjs4.2.2 |
grid.getDockedItems('toolbar[dock=bottom]'); |
链接 |
http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.container.DockingContainer-method-getDockedItems |
用途 |
获得grid当前选中条目,把’s’去了,(大神们真是闲得蛋疼!) |
Extjs3.4 |
grid.getSelectionModel().getSelections(); |
链接 |
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.grid.RowSelectionModel-method-getSelections |
Extjs4.2.2 |
grid.getSelectionModel().getSelection(); |
链接 |
http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.selection.Model-method-getSelection |
用途 |
定义派生类 |
Extjs3.4 |
Bat.Grid = Ext.extend(Ext.grid.EditorGridPanel, { constructor:function(config){ … Ext.reg('bat_grid', Bat.Grid); |
链接 |
|
Extjs4.2.2 |
Ext.define('Bat.Grid', { extend : 'Ext.grid.Panel', alias : 'bat_grid', xtype: 'bat_grid',
constructor:function(config){
|
链接 |
|
用途 |
隐藏对话框 |
Extjs3.4 |
Ext.MessageBox.hide(); |
链接 |
3.4可以无视当前是否有对话框,直接hide不会出问题 |
Extjs4.2.2 |
if(Ext.MessageBox.isVisible()) Ext.MessageBox.hide(); |
链接 |
4.2.2如果当前没有对话框,直接hide会抛出异常 |
用途 |
展开树的所有子节点 |
Extjs3.4 |
node.expandChildNodes(true); |
链接 |
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.tree.TreeNode-method-expandChildNodes |
Extjs4.2.2 |
node.expandChildren(true); |
链接 |
http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.NodeInterface-method-expandChildren |
用途 |
隐藏tab项 |
Extjs3.4 |
tab1.hide(); tabPanel.unhideTabStripItem(tab1); |
链接 |
需要两个动作才能隐藏某tab项 |
Extjs4.2.2 |
tab1.tab.hide(); |
链接 |
此调用会隐藏相应的顶部标签,document里居然没有公开此调用, 在论坛找到的:http://forums.ext.net/showthread.php?19706-CLOSED-TabPanel-hideTabStripItem-unhideTabStripItem |
用途 |
动态修改ComboBox的store loadData |
Extjs3.4 |
mode:'local' |
链接 |
http://www.sencha.com/forum/showthread.php?137631-ComboBox-does-not-work-on-loadData-method |
Extjs4.2.2 |
queryMode: 'local', |
链接 |
此调用会隐藏相应的顶部标签,document里居然没有公开此调用, 在论坛找到的:http://forums.ext.net/showthread.php?19706-CLOSED-TabPanel-hideTabStripItem-unhideTabStripItem |
先总结这么多,有新得再增加。ss
最后晒张成果图
相关推荐
对于EXTJS 3.4和4.1版本的共存问题,可以将它们分别打包成WAR文件,部署到Tomcat或JBoss服务器中,以避免内存溢出。访问EXTJS的API和示例,可以通过配置服务器的URL来实现。 3. EXTJS 开发环境配置 - 浏览器:推荐...
描述中的"spket1.6.18和extjs3.4"稍有不同,它提到了Spket的更具体版本1.6.18,这意味着可能在下载或讨论中涉及到的是Spket的一个更新版本,但仍然与ExtJS 3.4配合使用。这通常意味着用户可能在寻找或使用这两个工具...
本资源包包含了与ExtJS 3.4相关的学习资料,包括`Ext-core.pdf`、`轻松搞定Extjs.pdf`以及`Extjs学习笔记.docx`,旨在帮助初学者或有经验的开发者更好地理解和掌握ExtJS 3.4。 `Ext-core.pdf` 是关于Ext Core的文档...
通过研究ExtJS 3.4的源码,开发者不仅可以学习到JavaScript的高级用法,还能掌握前端开发的最佳实践,为构建高性能、交互性强的Web应用打下坚实基础。同时,这个源码包对于想要深入了解JavaScript框架工作原理的人来...
在本主题中,我们关注的是ExtJs3.4版本中的一个扩展——Tags控件。这个控件允许用户在界面上以标签的形式输入和展示数据,常见于关键词选择或者多值输入的场景。 `Tags控件`是基于`DataView`组件进行扩展的。`...
extjs3.4api,很实用,方便大家学习extjs,欢迎大家下载 extjs3.4中文api,很实用,方便大家学习extjs,欢迎大家下载
extjsapi,extjs文档,api手岫
extjs 3.4 full package extjs 3.4 ajax 实例
extjs_3.4官方离线API,方便查询所有组件属性
学习TreePanel时根据网上的资料自己实现的实例,结构如下: 1. 创建一棵树 2. 使用TreeLoader加载数据生成树 3. 读取本地Json数据生成树 4. 使用Servlet提供数据 5. 树的事件 6. 右键菜单 7. 修改节点的默认图标 ...
标题中的“ExtJS3.4和VS2010上传文件的进度条”涉及的是一个使用ExtJS3.4版本的JavaScript库与Microsoft Visual Studio 2010(VS2010)进行文件上传,并在上传过程中显示进度条的功能。这个功能在Web应用程序中非常...
Extjs官方文档 帮助你更好的学习Extjs,同事这里面的代码是最完整,最规范的。
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》
在EXTJS 3.4版本中,创建对象是框架中非常基础且重要的操作,它涉及到类的实例化、配置项的使用以及对象间的交互。EXTJS是一个基于JavaScript的富客户端应用开发框架,提供了丰富的组件库和强大的数据管理能力。下面...
### Spring MVC MyBatis ExtJS 3.4 权限管理系统关键知识点解析 #### 一、项目背景与架构概述 本系统采用Spring MVC框架作为控制层,MyBatis作为持久层框架,ExtJS 3.4作为前端界面展示工具,实现了权限管理功能,...
extjs 4.2 jsb2 4.2没有自带jsb2文件
在IT行业中,Web开发经常会遇到文件上传的需求,而"extjs3.4+swfupload上传"就是一个典型的前端文件上传解决方案。EXT JS 3.4是一款强大的JavaScript框架,用于构建富客户端应用程序,提供了丰富的组件库和强大的...
本人初步采用spring mvc3 mybatis3 extjs 3.4开发进销存软件,有很好的参考价值,其中数据库采用oracle,分页采用调用oracle的存储过程,有很好的学习价值,若是想开发简单的CRM和进销存系统是极品参考的系统。...
此api为tomcat运行api 即需要双击文件夹bin中的startup启动api项目 ...访问ext的各控件项路径为http://localhost:8888/extjs3/docs/index.html 访问ext的样例路径为 http://localhost:8888/extjs3/examples/index.html