现有的Combobox类里面是没有一个直接的方法让你来获取selectedIndex的,这点和HTML里面的input标签不太一样。
比如通过Combobox里面的Store来获取。
具体代码如下
Ext.onReady(function(){
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [ 'name', 'email', 'phone' ]
});
var userStore = Ext.create('Ext.data.Store', {
model: 'User',
//groupField:'name',
data: [
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244' },
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
],
autoLoad:true,
proxy: {
type: 'memory',
reader: {
type: 'json'
// root: 'users'
}
}
});
var combox = Ext.create('Ext.form.ComboBox',{
fieldLable:'test',
store: userStore,
triggerAction : 'all',
queryModel:'local',
forceSelection: true,
selectOnFocus:false,
allowBlank:true,
displayField:'name',
renderTo:Ext.getBody(),
listeners:{
scope:this,
'select':function(combo,record, index){
var value = combo.getValue();
var rec = combo.findRecord(combo.valueField || combo.displayField, value);
var ind = combo.store.indexOf(rec);
alert('selected index = ' + ind + ' and record.value=' + value);
}
}
});
/*
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: userStore,
width: 400,
height: 200,
title: 'Application Users',
selType:'cellmodel',
//features:[{ftype:'grouping'}],
columns: [
{
text: 'Name',
width: 100,
sortable: false,
hideable: false,
dataIndex: 'name',
editor: {
xtype: 'textfield',
allowBlank: false
},
},
{
text: 'Email Address',
width: 150,
dataIndex: 'email',
hidden: false,
renderer:function(value){
return Ext.String.format('<a href="mailto:{0}">{1}</a>', value, value);
}
},
{
text: 'Phone Number',
flex: 1,
dataIndex: 'phone'
}
],
dockedItems:[{
xtype:'pagingtoolbar',
store:userStore,
dock:'top',
displayInfo:true
}],
plugins: [
Ext.create('Ext.grid.plugin.CellEditing',{
clickToEdit:1
})
],
});//end of grid panel
*/
});