更改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)  );

你可能感兴趣的:(UI,ext)