Ext.data.Store 小细节收集
1. 常用的初始化方法
新建一个store一般的方法如下(一般从服务器获得数据)
var storeRecord = new Ext.data.Record.create([ {name: 'id', type: 'string',mapping:'projectId'}, {name: 'name',type: 'string', mapping:'projectName'}, {name: 'type', type: 'string',mapping:'type'} ]);var configProjectAll = new Ext.data.Store({proxy : new Ext.data.HttpProxy({ // 加载的远程urlurl : 'findConfigProjectAll.action'}),autoLoad : false, // 是否自动加载 一般设置false 需要时候在加载sortInfo : {field: 'name', direction: 'ASC'},//DESC 排序依据和升or降reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root', // 服务器返回json的根信息id :'projectId' // 值为对应的mapping的值},storeRecord // 要加载的数据)});
store创建好后,需要调用load()函数加载数据,加载成功后才能对store中的数据进行操作。load()调用的完整过程如下面的代码所示。store.load({//params是在store加载时发送的附加参数。 params: {start:0,limit:20},//records参数表示获得的数据(是一个数组)//options表示执行load()时传递的参数 //success表示是否加载成功(true or false)// 上面参数具体的用法可以通过ff进行查看,一目了然 callback: function(records, options, success){ // 可以通过参数sucess判断是否成功加载 },//用来指定回调函数执行时的作用域。 scope: store,// 一般不用//Add为true时,load()得到的数据会添加在原来的store数据的末尾, //否则会先清除之前的数据,再将得到的数据添加到store中。 add: true // 一般不用});
{"root":[{"processVersion":2,"projectId":84,"projectName":"a","projectVersion":" ","type":1},{"processVersion":2,"projectId":85,"projectName":"b","projectVersion":"10.1","type":1},{"processVersion":2,"projectId":86,"projectName":"c","projectVersion":"10.2","type":1}], "success":true,"totalProperty":3}
{name: 'id', type: 'string',mapping:'projectId'},
store.load({ params:{ start:0, limit:pageSize }, callback: function(records, options, success){ sql = this.reader.jsonData.sql; // sql 就是附加的json信息 } });