ExtJS的數據傳輸與處理配置至關麻煩,從Ext.data.Connection類到Ext.data.Record到Ext.data.Store,以及一系列proxy和Reader,每每讓初學者很頭疼。新學同樣東西立刻就去硬啃這些知識是很是不可取的,本人的經驗是先用最簡單的,等你熟練了再去深刻理解其中的設計。 node
還好ExtJS提供了幾個用於處理數據傳輸的高級Store,在工做中很是實用: json
一: Ext.data.SimpleStore 數組
能夠認爲:SimpleStore=Store+MemoryProxy+ArrayReader app
也就是說這個簡潔版本的store專門用來處理返回爲數組格式的數據。 this
看以下代碼: url
.... store : new Ext.data.SimpleStore({ autoLoad : true, url : __ctxPath + '/system/loadItemDictionary.do', fields : ['proTypeId', 'typeName'], baseParams : { itemName : label } }), ....
二:Ext.data.JsonStore spa
this.store = new Ext.data.JsonStore({ url : __ctxPath + "/communicate/listSmsMobile.do", root : "result", totalProperty : "totalCounts", remoteSort : true, fields : [{ name : "smsId", type : "int"}, "sendTime", "recipients", "phoneNumber","userId", "userName", "smsContent", "status"]}); this.store.setDefaultSort("smsId", "desc"); this.store.load({ params : { start : 0, limit : 25 } });
JsonStore將JsonReader和HttpProxy整合在一塊兒了,提供了一個從後臺獲取json數據的簡便方法,分頁也很是方便。 設計
後臺返回標準的json數據既能夠。 code
三:Ext.data.GroupingJsonStore ip
this.store = new Ext.data.GroupingStore({ proxy : new Ext.data.HttpProxy({ url : __ctxPath + "/flow/nodesFieldRights.do? defId="+ this.defId }), reader : new Ext.data.JsonReader({ root : "result", id : "id", fields : [ { name : "rightId", type : "int" }, { name : "mappingId", type : "int" }, "taskName", { name : "readWrite", type : "int" }, { name : "refieldId", type : "int" }, "fieldName", "fieldLabel" ] }), groupField : "taskName" }); this.store.load();
上面的groupField標識按某一個字段進行分組顯示