extjs4 中combobox如何设置默认值。

2025-01-04 05:46:07
推荐回答(3个)
回答(1):

extjs的combox设置默认选中第一行确实是一件痛苦的事情。。。

我自己是这样做的

var store = Ext.create('Ext.data.Store', {
fields: ['键值']
proxy: {
type: 'ajax',
url: 'xxx.php',
reader: {type: 'json'}
}
});
ComboBox = Ext.create('Ext.form.ComboBox', {
store: store,
//参数
});
//监听load事件
store.on('load', function(){
ComboBox.select(store.getAt(0));
});


监听事件写到Ext.onReady(function(){});中

回答(2):

监听该ComboBox中Store的load事件(其实就是load的Callback),从Store中获取你想要的默认值,setValue就行了,store中获取数据非常简单,API中介绍了几种看看就行了

回答(3):

下拉框的形式出现最终提交要获取的值是它的value而不是文本值,EXT里面赋值的时候文本值跟value都是同一个了。所以这里多增加了一个隐藏的表单.,每次取下拉的值不是从下拉框组件取了,而是从隐藏的表单取值,不过要同时给下拉框加个事件,选中的下拉值赋给隐藏表单.通过这种方式问题就解决了。
例如:
var emplyoees = new Ext.form.ComboBox({
id : 'emplyoees',
fieldLabel: '人员',
hiddenName:'emplyoee',
store: emplyoeeStore,
readOnly : true,
valueField : 'name',
displayField:'name',
typeAhead: true,
valueNotFoundText : 0,
mode: 'local',
triggerAction: 'all',
emptyText:'请选择人员',
selectOnFocus:true,
width:190
});

emplyoees .on('beforerender',function(){
this.value=you need value;
});

不过显示的也是you need value.可以采用
this.hiddenField.value=you need value