先说下,extJS主要就是查API来写代码。
1.创建实例模型model,要继承Ext.data.Model,特别注意,js里继承是extend,不是Extend,也不是extends。示例:
Ext.define('UserModel',{
extend:'Ext.data.Model',
fields:[
{name:'name',type:'string'},//string首字母要小写
{name:'id',type:'int'},
{name:'birthday',type:'date'}
]
});
var user = Ext.create('UserModel',{
name:'张三',
id:45,
birthday:new Date(1990,09,09)
});
然后获取user的属性时,得用get方法,不能直接用。
alert(user.get('birthday'));//正确弹出
alert(user.birthday);//会提示undefined
2.使用Extjs实现增删改查时,由于有service,serviceImpl,dao,daoImpl四个层,则增加方法时必须在这四层都添加,虽然麻烦,但提高了扩展性。
3.PI中组件旁边标REQ的表示在新建组件时必须配置那几项,这可参考Ext.grid.Panel
4.对于日期的格式化,如new Date(1990,09,08)可用
xtype:'dateColumn',format:'Y年M月D日'
格式化日期。
5.用ExtJS实现表的增删改查<开发中最常用的布局>
①建包顺序 entity-->base-->dao-->daoImpl-->service-->serviceImpl-->action(即原来的servlet)-->util-->vo
②service和dao层都是接口。如
List<UserVO> findByPage(int currentPage,int page){}
③以前写jsp页面需要写3个(增,查,删改),分层完后就可以只写一个jsp页面,里边写不同的方法。
6.long型怎么转换为int?
long先转换为number,再由number转换为int。因为long和int都是number型。但int可以自动转换为long型。
7.为了能让componentMgr管理组件,就必须给组件添加id。
8.设置表单样式,可以全部写到default中,而其它地方不用写,可以节约时间。
9.up()获取到的是ext的组件,down()能获取任何深度的子组件,并且在down方法中,不应包含组件的id,而应该是组件的xtype.
如window组件中有form组件,则用
var form1 = btn.up('form');//获取表单组件
而对于down,则可用
var form2 = btn.up('window').down('form');//先获取顶级组件window,再用down获取子组件form
而不是说标签在方法上边就用up,在下边就用down,这是错误的。
10.补充xtype含义
xtype就是一个代表类(class)的的标示名字。如有这个类Rxt.ux.MyGrid,正常情况下需要用这个名字来实例化这个类(即创建类的对象)。这时,可以这样登记类的xtype:
Ext.reg('mygrid',Ext.ux.MyGrid);//类登记了新的xtype
其中,xtype是mygrid,而类名的一般形式是Ext.ux.MyGrid.这就是说,xtype mygrid和类Ext.ux.MyGrid是连在一起的。
作用就是使用xtype时,在内存中的仅仅是一个配置对象。如
{xtype:'mygrid',border:false,width:200}
然后在需要的时候才实例化,减少了很多内存消耗。如不使用xtype,则当这个grid有多个实例时,会消耗许多内存。