现在的位置: 首页 > 综合 > 正文

给动态数据源的Ext.form.ComboBox设置初始值及提交后怎样取值

2013年03月10日 ⁄ 综合 ⁄ 共 1321字 ⁄ 字号 评论关闭

动态数据源的Ext.form.ComboBox不能向静态数据源那样设置初始值,那样做的结果只会让设置的value值直接先是到界面上。

 

可用如下办法处理,就是在数据都准备好以后在初始化:

例如ter

        var terminalModelStore = new Ext.data.JsonStore
        ({
            root:'rows',
            totalProperty:'recordCount',
            url:'getTerminalModel.action',
            fields: ['name', 'value'],
            autoLoad:true   
        })

 

        var terminalModel = new Ext.form.ComboBox
        ({
            id:'trmlModel',
            name: 'trmlModel',
            hiddenName: 'terminalModel',
            fieldLabel:'终端型号',
            typeAhead: true,
            //emptyText:'--请选择--',
            //disabled: true,
            mode: 'local',         
            triggerAction: 'all',
            selectOnFocus:true,
            forceSelection: true,
            editable: false,
            valueField: 'value',
            displayField: 'name',
            anchor:'95%',
            //value:'all',
            store: terminalModelStore         
        });

 

        function initData(){
              terminalModel.setValue('all');
              Ext.form.ComboBox.superclass.setValue.call(terminalModel, '全部');
        }


        viewport.on('aferRender',initData());

 

Ext.form.ComboBox的另外一个用法曾经给我比较大的困扰,就是当表单提交后的取值。
Ext.form.ComboBox的值只能通过hiddenName定义的名称去取得。
     比如上例:

 

            name: 'trmlModel',
            hiddenName: 'terminalModel',

 

request.getParameter("
terminalModel")取得值才是正确的,
request.getParameter("
trmlModel
")实际上取得是显示的名称,即“
displayField
”对应的值。

【上篇】
【下篇】

抱歉!评论已关闭.