先說下,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有多個實例時,會消耗許多內存。