来自:http://hi.baidu.com/zl8851023/blog/item/ca133d9f8c6be3157bf4802a.html
=============================
我用的是最后一种,SimpleStore的方法。
问 题来由:combox组件,store使用xmlreader,想对其设置默认值。
发现,使用普通方法,设置combox的 value属性,不起作用。下拉框中仅显示valuefield而不显示displayfiled的值。
解决方法两种:
一、在初 始化时,分别设置value和rawValue。
Ext.getCmp('comboxID').setValue('00001');
Ext.getCmp('comboxID').setRawValue('00001 数学院');
Ext.getCmp('comboxID').setRawValue('00001 数学院');
二、在combox的store加载完毕后,设置combox的value值。
var deptStore = new Ext.data.Store({
url : '',
reader : new Ext.data.XmlReader({
record : 'codeitem'
}, ComboRecord),
sortInfo : {
field : 'id',
direction : 'ASC'
}
});
deptStore.load({
callback : function(records, options, success) {
if (success) {
Ext.getCmp('comboxID').setValue('00001');
}
} });
url : '',
reader : new Ext.data.XmlReader({
record : 'codeitem'
}, ComboRecord),
sortInfo : {
field : 'id',
direction : 'ASC'
}
});
deptStore.load({
callback : function(records, options, success) {
if (success) {
Ext.getCmp('comboxID').setValue('00001');
}
} });
感 觉很诡异。因为普通的store使用value属性就能设置默认值。估将combox的store修改为SimpleStore。
store : new Ext.data.SimpleStore({
fields:['id','name'],
data:[['','-'],['00001,''00001 数学院']]
})
fields:['id','name'],
data:[['','-'],['00001,''00001 数学院']]
})
此时,使用value属性, 即可设置默认值。
所以,怀疑是组件在加载时,对属性加载的顺序有关或者store解析xml文件时的问题。此问题有待查 明。
=============================
我用的是最后一种,SimpleStore的方法。