Extjs中Store和Record的数据获取【精】

Extjs中Store和Record的数据获取【精】

首先需要了解一点:

除了Records对象获取Record时,需要用get()方法——因为Records不是一个数组!

其他地方均采用Js的方式,即,属性obj.idobj[id]方式

例子:

scoreStore.on("load",function(){
	var records = scoreStore.data;
	for (var i = 0; i < records.length; i++) {
正确!	var record = records.get(i);/**只能通过records.get(i)方式获取对应下标的record————因为records并不是数组!!!*/
错误!	var record2 = records[i];//该方式无法获取对应的Record记录,因为中间隔着一个items数组,而records本身不是一个数组
错误!	record.xmid = scoreXmid;//这种方式只是给record增加一个xmid属性,并给该属性赋值,并不是我们想要的data里的xmid!!!
		if (record.get("xmid") == "") {
正确!		record.data.xmid = scoreXmid//**这是给fields对应字段赋值的正确方式*/
		}
		if (record.get("id") == "") {
正确!		record.data.id = -1;/**这是给fields对应字段赋值的正确方式*/
		}
		//record.get("xmid") = scoreXmid;//record.get("xmid")拿的不是字段名,而是字段值,是把fields中xmid字段的值给拿到了,即:""=4,肯定报错!
		var data = record.get("xmid");/**此时会发现:data = 4,说明get()获取到的是个属性值!!!*/
	}
});

1.获取Records:


Score如下:

Records如下:(注意有个items数组的属性,该属性下的data才是我们想要的Record !)

 
2.获取Record:(注意:得用get方法,这是Extjs的api,因为Records本身不是一个数组!!!)
——正确!


——错误!


——record2获取错误,undifined!
 

Record如下:(注意其下的xmid属性,和其下的data属性中的xmid属性的区别!!!)

——这是给record中的xmid属性赋值。
 
——这是给data中的属性赋值,才是我们想要的!!!
 

3.获取Data:(注:取值时两种方式皆可,取属性名准备赋值,只能用第二种!!!)

——最终获取值。
 

4.赋值:(注意赋值与取值的区别,get的区别!)

 

猜你喜欢

转载自zyjustin9.iteye.com/blog/2123503
今日推荐