JimmyblyLee 2012-02-23
store的add方法要求加入的record的id不相同,否则不会被加入。
见ext-all-debug.js的Ext.util.MixedCollection,其add方法为:
add:function(key,o){
if(arguments.length==1){
o=arguments[0];
key=this.getKey(o);
}
if(typeofkey=="undefined"||key===null){
this.length++;
this.items.push(o);
this.keys.push(null);
}else{
varold=this.map[key];
if(old){
returnthis.replace(key,o);
}
this.length++;
this.items.push(o);
this.map[key]=o;
this.keys.push(key);
}
this.fireEvent("add",this.length-1,o,key);
returno;
},
getKey:function(o){
returno.id;
},
如果发现有相同的id,则就会被returnthis.replace(key,o);掉。
可以用Ext.generateId()方法随机生成新的id