在ext的combobox中, 我想在 update一条record的时候自动选中下拉框中的一个值, 貌似ext的combo不支持
这个功能, 只能显示出默认的值,都不能保存默认的值.
先看看它的属性:
new Ext.form.ComboBox({
fieldLabel: '学校',
editable: false,
hiddenName: 'schoolId', //生成一个 hiden的input, name='schoolId'
readOnly: true,
triggerAction: 'all',
value: obj.schoolName,
// combobox的显示值, 因为它是用 div的input模仿的,input的value就是这个value了
// 这个value并不是记录schoolId的,只用于显示,所以没用
displayField: 'schoolName', //对应的 store中的 field name设置
valueField: 'schoolId', //对应的store中的 field name设置
});
我只能找到这些相关的 property设置, 实现找不到一个像 hiddenValue 这个的属性了, 没法子, 唯有变通一下,
加一个 Ext.form.Hidden, 用于记录 选中和默认的 schoolId
new Ext.form.Hidden({
id: 'schoolId_f',
name: 'schoolId',
value: obj.schoolId //update的时候记下原来选中的值
});
给上面的combobox添加监听事件, 监听选值的改变
listeners: {
select: function(combo, record, index) {
// 该事件会返回选中的项对应在 store中的 record值. index参数是排列号.
Ext.getCmp('schoolId_f').setValue(record.get('schoolId'));
// 更改 hidden的值,
}
}
用上面的方法就可以了, 实现在更新的修改时给comboBox设置默认的选中值.




















