ExtJS3.4升级ExtJS4.2的问题汇总

  昨天心血来潮,想把自己用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

先总结这么多,有新得再增加。ss

最后晒张成果图

ExtJS3.4升级ExtJS4.2的问题汇总(转)的更多相关文章

  1. Spring Boot 1.5升级2.1 主要问题汇总

    我们目前工作的系统是基于Spring Boot 1.5.19.RELEASE.Spring Cloud Edgware.SR3开发的,因为一个新项目开发过程的体验,所以在考虑升级到Spring Boo ...

  2. Extjs4学习

    1 Ext js初步 1.1 获取Extjs 下载extjs: 可以从http://extjs.org.cn/ 获得需要的extjs发布包及更多支持. 1.2 搭建学习环境: 假设您的机器已经安装my ...

  3. VS2010升级VS2012必备(MVC4 WebPage2.0 Razor2.0资料汇集)

    刚把项目升级到2012,发现发生了很多变化,以下是最近看过的网站和资料汇集,供需要者参考. 本文在最近一个月可能会不断更新. Razor2.0 新特性介绍: 介绍1:http://vibrantcod ...

  4. Extjs4中的布局

    布局用于定义容器如何组织内部子元素和控制子元素的大小.在一个应用程序中,作为定义容器的组织形式,布局是一个十分重要的组件.是显示单个子元素?还是垂直或水平显示多个子元素?这些均由布局来定义.并且布局将 ...

  5. Extjs4新特性

    Extjs 4相对于之前的版本作出了重大的修正.其中包括全新的类系统.新平台的引入.API的修整和加强还有新组件的引入(如新的图表和图形组件).Extjs 4提供更快速.更稳定的用户体验,并且让开发人 ...

  6. oracle11g数据库升级数据库升级

    Oracle对自己产品也一样,对于自己的产品在不同的时期,支持的强度是不一样的.大体分来,支持的强度分为三个级别:Premier Support(最高优先级的支持),Extended Support( ...

  7. Extjs4.x Tree树刷新,默认选中展开到最后一次选中的节点

    跟Extjs3.0不同Extjs4.2的写法如下: idPath = selNode.getPath("id"); tree.getStore().load({ node: tre ...

  8. ExtJS 刷新后,默认选中刷新前最后一次选中的节点

          在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认选中最后一次选中的节点.这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的 ...

  9. 【转载】《Ext JS 4 First Look》翻译之一:新特性

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:^_^肥仔John      原文地址:http://www.cnblogs. ...

随机推荐

  1. redhat 时区修改

    修改系统时区,发现只需要一个命令就可以解决 修改之前: cp /usr/share/zoneinfo/Asia/Chongqing  /etc/localtime 修改之后:

  2. Spring测试

    测试类添加两个注解 @RunWith(SpringJUnit4ClassRunner.class)和@ContextConfiguration(locations = "classpath: ...

  3. 使用计算监控(Using computed observables)

    计算监控(Computed Observables) 如果有两个监控属性firstName, lastName,此时我们要显示full name,我们要怎么办呢? 这时,可以创建一个computed ...

  4. 转 精选37条强大的常用linux shell命令组合

    1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 p ...

  5. JPA 系列教程10-双向一对一关联表

    双向一对一关联表的ddl语句 CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255 ...

  6. 拦截asp.net mvc输出流做处理, 拦截HTML文本(asp.net MVC版)

    以前的一个贴子写过一个webForm的拦截HTML输出流的版本,最近用到mvc时用同样的方式发生一些问题. 如下图 查了好久也不知道啥原因. 好吧, 我最后选择放弃. 想起以前自定义Response. ...

  7. APP测试中的头疼脑热:测试人员如何驱动开发做好自测

    如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...

  8. 简单介绍如何使用robotium进行自动化测试

    1.      创建一个简单的工程()作为被测程序,运行后显示如下界面: 2.      创建一个Test Project 1).     打开eclipse,选择File->New->P ...

  9. mysql 注册登陆表单并且操纵元素

    <?php      error_reporting(E_ALL^E_DEPRECATED^E_NOTICE);    header("content-type:text/html;c ...

  10. 第十四章:使用CSS3进行增强

    1.为不支持某些属性的浏览器使用polyfill:如果想弥合较弱的浏览器和较强的浏览器之间的功能差异,可以使用polyfill(通常又称作垫片),通常用js实现.但是有些较弱的浏览器运行JS的速度要慢 ...