你在没有加alert()前,数据源尚未加载完成,你就进行赋值了。所以只会显示key,而不会是value。
你的alert(),是赋值延后了,数据已经加载完成,所以可以了。
解决思路:你要在数据源加载完成后在进行赋值。——用回调函数callback吧
我的代码(可能麻烦,不过你这个情况我这样解决):
以下代码加在你创建settleTempStore后。
settleTempStore.on('load',function(){Ext.getCmp('openStlnod').setValue(Ext.getCmp('openStlnod').getValue())})
可能标点会不会不匹配,直接打没校验过,你直接调整下。
EXTJS 下拉框 combobox 可以通过3种方式赋值1定义时 用value:值
2.点击选项赋值
3.用setValue 或者 setRawValue 方法赋值
需要注意的是 setValue 或者 setRawValue 需要在对象 渲染后才能执行 否则或赋值失败
对于您的问题 要看代码 是否是在渲染后赋值 , 或者 在没有 setValue 时 是否正常
不需要使用load来实现,使用store来 *** 作记录集//定义一个数据模型
Ext.define('data', {
extend: 'Ext.data.Model',
fields: ['val']
})
//定义一个记录集
var cData = Ext.create('Ext.data.ArrayStore',{
model: 'data',
data: [['数据1'],['数据2'],['数据3'],['数据4']]
})
//向已有的记录集插入新的数据,但是注意,这里只是在js数组里面添加了数据,要保存到数据库,还需在该函数后面添加ajax
function insert(){
var r = Ext.create('data', {val: '添加新的数据'})//这里的数据如果是用户输入的话,只需要换成那个文本框的值就行了,val: Ext.getCmp('xxxid号').getValue()
cData.insert(0, r)
//ajax *** 作
alert('successfully done!')
}
//创建combo框
Ext.onReady(function(){
var combo = Ext.create('Ext.form.field.ComboBox', {
store: cData,
fieldLabel: '下拉框',
displayField: 'val',
width: 498,
labelWidth: 60,
triggerAction: 'all',
renderTo: Ext.getBody()
})
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)