Extjs中Store和Record的数据获取【精】
首先需要了解一点:
除了Records对象获取Record时,需要用get()方法——因为Records不是一个数组!
其他地方均采用Js的方式,即,属性用obj.id或obj[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的区别!)