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({  //  加载的远程url
				url : '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   // 要加载的数据
				)
});


2. 加载数据

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  //  一般不用
});



Ext.data.Store 小细节收集


3. 后台要返回对应的json格式的数据
{
	"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
}


Store会自动根据传递来的数据进行加载
根据
{name: 'id',   	type: 'string',		mapping:'projectId'},

进行自动匹配,多余的就不匹配.丢弃


2. ext2.2 和 ext3.2 返回值success区别
Ext.data.Store 加载时候
ext2.2 不用管前台放回的是false还是true
ext3.2 如果前台放回success false 无法加载数据  一定要是true

3. stroe加载数据,传递额外信息.并获取
比如:加载数据的同时要向客户端传递查询的sql语句的实现

Ext.data.Store 小细节收集

store.load({
    	params:{
    		start:0, 
    		limit:pageSize
    	},
    	callback: function(records, options, success){
    		sql = this.reader.jsonData.sql; // sql 就是附加的json信息
    	}
    });



4. Store遍历
store.each(function(record){
	var value = record.get(name);//Ext.data.Record.create  对应的name的值
});

你可能感兴趣的:(store)