更动comboBox默认值
前些时候要写更改下拉列表的默认值,并且更改下拉列表时,动态更改表单中的数据。不过在网上找了不少资料,可惜没找到有参考价值的资料,大部分作者大概没有自己检验过。下面的代码也希望对你有点帮助,绝对原版!
//加载下拉列表的值<vId--vTypeName>
var st = new Ext.data.Store({
proxy : this.proxy||new Ext.data.HttpProxy({url:'ui/modules/speedy/cm/VoucherTypeSet/getTcmVoucherTypeSetIdAndVTypeName.action'}),
reader : new Ext.data.JsonReader({
totalProperty:'totalCount',
id : "id",
root : "result"},
[{name : 'vId', mapping : 'vId'},
{name : 'vTypeName',mapping : 'vTypeName'}]
)
});
----------------------------------------------------------
//下拉列表的定义,名字为‘凭证类型’
this.vouTypeChang = new Ext.form.ComboBox({
store : st,
fieldLabel : '凭证类型',
mode : 'local',
triggerAction : 'all',
id : 'vTypeId',
name : 'speedy.cm.tcmVoucherDebSet.vTypeId',
valueField : 'vId',
displayField : 'vTypeName',
hiddenName : 'Id',
forceSelection: true,
readOnly : true,
width : 200
});
st.load();//加载数据源
-------------------------------------------------------
//设置下拉列表的默认值
st.on('load',function(store,record,opts){
//第一项值的vId
var fId = store.getRange()[0].data.vId;
//这种方法可以获得第一项的值 ,也是我们要得到的值
this.firstValue =store.getRange()[0].data.vTypeName;
// Ext.Msg.alert('下拉列表的第一个值',this.firstValue);
//设置第一项的值为this.firstValue
this.vouTypeChang.setValue(this.firstValue);
//更改下拉列表的值时,向url传递参数vTYpeId
this.store.baseParams.vTypeId=this.firstValue;
//重新加载数据,实现了更改下拉列表时,动态更新表单中的数据
this.store.load();
}.createDelegate(this) );