最近用EXTJS 3.0开发项目,页面form表单中使用了ComboBox,
var _typestore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({url:'basecodeType!getJson.action'}), reader: new Ext.data.JsonReader({ root: 'records', totalProperty: 'totalCount', id: 'basecodeTypeid', fields: [ {name: 'basecodeTypeid'}, {name: 'name'} ] }), remoteSort: true }); _typestore.load({params:{start:0,limit:6,sort:'basecodeTypeid',dir:'desc'}}); var _type=new Ext.form.ComboBox({ id:'basecodetype', fieldLabel: '辅助编码类型', name: 'basecode.basecodetype.basecodeTypeid', hiddenName :'basecode.basecodetype.basecodeTypeid', editable:false,//默认true,禁止手写和联想功能 typeAhead: true, triggerAction: 'all', lazyRender:true, mode: 'remote',//指定数据加载方式:remote服务器,local客户端 emptyText:'--请选择--', width: 210, store: _typestore, valueField:'basecodeTypeid' , displayField: 'name', pageSize:6 });
如何 在进入编辑页面的时候能显示后台传来的值?测试了三种方法均通过,现将其总结如下:
第一种:在_typestore中添加
listeners :{ load:function(){ Ext.getCmp('basecodetype').setValue(${basecode.basecodetype.basecodeTypeid}); } }
第二种:添加
_type.on('afterrender',function(){ Ext.get('basecodetype').dom.value='<s:property value="basecode.basecodetype.name"/>'; Ext.get('basecode.basecodetype.basecodeTypeid').dom.value='<s:property value="basecode.basecodetype.basecodeTypeid"/>'; });
注意:'basecodetype'对应ComboBox的id;
'basecode.basecodetype.basecodeTypeid'对应ComboBox的hiddenName
第三种,所在表单form渲染后,可以不用放在事件里,而是直接添加
Ext.get('basecodetype').dom.value='<s:property value="basecode.basecodetype.name"/>'; Ext.get('basecode.basecodetype.basecodeTypeid').dom.value='<s:property value="basecode.basecodetype.basecodeTypeid"/>';