如题我的comboBox是一个自定义控件,数据是从数据库读取的,现在想在读取完之后手动加入一项到comboBox中去
我的想法是在前台调用这个自定义控件的地方添加listener,然后不会了...
具体应该怎么加???
跪谢...
抱歉,代码是项目拿出来的,有些地方没改完,作以下修改:
[code="java"]
var storeData=[];//定义一个一维数组,用于放你从数据库得到的值
var combo = new Ext.form.ComboBox({
store: storeData,//直接把一维数组给store
// displayField:'value',//用一维数组就不需要定义这个了
// valueField:'value',,//用一维数组就不需要定义这个了
fieldLabel:'combo名称',
//typeAhead: true,
mode: 'local',
//id:'comboId',
name: 'comboName',
//anchor:'95%',
editable :true,
//forceSelection: true,
triggerAction: 'all',
//emptyText:'Select a state...',
selectOnFocus:true
//applyTo: 'local-states'
});
//这里是你从后台读数据的代码,我这里以一个DWR读数据为例子
DWREngine.setAsync(false);//DWR同步调用
dwrClass.dwrFunction(value,function(data){
storeData=data;//把后台的值给storeData
});
combo .store.loadData(storeData);//给comboBox加载新得到的数据
DWREngine.setAsync(false);
[/code]
store.on('load',function(){ //监听combo 下的store
store.loadData(); //添加json数据,必须Reader能解析
})
你从后台得到的数据然后给comboBox,那数据应该是一个一维数组吧。其实一维数组可以直接作为comboBox的store,这里没必要把数据转为json数据,那样麻烦,以下是我的做法,我以前在项目也是这样做的。
[code="java"]
var storeData=[];//定义一个一维数组,用于放你从数据库得到的值
var combo = new Ext.form.ComboBox({
store: storeData,//直接把一维数组给store
// displayField:'value',//用一维数组就不需要定义这个了
// valueField:'value',,//用一维数组就不需要定义这个了
fieldLabel:'combo名称',
//typeAhead: true,
mode: 'local',
//id:'deviceName',
name: 'deviceName',
//anchor:'95%',
editable :true,
//forceSelection: true,
triggerAction: 'all',
//emptyText:'Select a state...',
selectOnFocus:true
//applyTo: 'local-states'
});
//这里是你从后台读数据的代码,我这里以一个DWR读数据为例子
DWREngine.setAsync(false);//DWR同步调用
dwrClass.dwrFunction(value,function(data){
storeData=data;//把后台的值给storeData
});
combo .store.loadData(portData);//给comboBox加载新得到的数据
DWREngine.setAsync(false);
[/code]