前提
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
]
});
var data = {
users: [
{
id: 1,
name: 'Ed Spencer'
},
{
id: 2,
name: 'Abe Elias'
},
{
id: 3,
name: 'Abe Eli33as'
}
]
};
var mystore = Ext.create('Ext.data.Store', {
autoLoad: true,
model: 'User',
data : data,
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'users'
}
}
});
var multiSelect={
id:'multiselect',
height:210,
width:325,
xtype: 'multiselect',
valueField: 'id', //相当于在select->option中 key值,store里为对象,需要指定值,
displayField: 'name', //相当于在select->option中 label值,store里为对象,需要指定值,
name: 'multiselect',
allowBlank: false,
store: mystore,
value: [1,2], //显示选中的值
ddReorder: true
};
1 记录的添加
var index=3;
var addUserBtn = Ext.createWidget('button', {
text: 'Add',
width:60,
handler: function () {
index = index+1;
mystore.add( {id:index,name:"jack"+index}); //添加对象
}
});
2 记录获取
//取得选中的keys值,所得的值为数组
var values= Ext.getCmp("multiselect").getRawValue() ;
//取得选中的对象(复数)
var selectObjs = Ext.getCmp("multiselect").boundList.getSelectionModel().getSelection();
//循环访问store 方法一
var length = mystore.getCount( );
for(var i=0;i< length;i++){
alert( mystore.getAt(i).get("id") ); //mystore.getAt(i) 取得一条记录 get("id") 取得记录的某个字段值
}
//循环访问store 方法二
mystore.each(
function(record){
alert(record.get("id"));
}
);
3 记录移除
方法1
mystore.each(
function(record){
if(values[i]==record.get('id')){
mystore.remove(record);
}
}
);
方法二
mystore.remove( Ext.getCmp("multiselect").boundList.getSelectionModel().getSelection());