欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ext.form.ComboBox编辑页面显示值问题

程序员文章站 2022-03-07 13:31:54
...

     最近用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"/>';
               

 

 

相关标签: EXT