`

ExtJs的ComboBox级联实现(转)

阅读更多

ExtJs的ComboBox级联实现

1、首先定义store


Js代码
//**测试下拉框级联**   
 var storedm = new Ext.data.Store({   //队名称下拉框   
     proxy: new Ext.data.HttpProxy({      
         url: '../servlet/CommonMethod?command=getdm'     
     }),      
     reader: new Ext.data.JsonReader({      
     root: 'dms',      
     id: 'id'  
     }, [      
         {name: 'id', mapping: 'id'},      
         {name: 'mc', mapping: 'mc'}      
     ])      
    });    
       
    var storejh = new Ext.data.Store({  //井号选择下拉框   
     proxy: new Ext.data.HttpProxy({      
         url: '../servlet/CommonMethod?command=getjh' //这里是参数可以顺便写,这个数据源是在第一个下拉框select的时候load的   
     }),      
     reader: new Ext.data.JsonReader({      
     root: 'jhs',      
     id: 'jh'     
     }, [      
         {name: 'jh', mapping: 'jh'},      
         {name: 'jm', mapping: 'jm'}      
     ])      
    });  
//**测试下拉框级联**
 var storedm = new Ext.data.Store({   //队名称下拉框
     proxy: new Ext.data.HttpProxy({   
         url: '../servlet/CommonMethod?command=getdm'  
     }),   
     reader: new Ext.data.JsonReader({   
     root: 'dms',   
     id: 'id'
     }, [   
         {name: 'id', mapping: 'id'},   
         {name: 'mc', mapping: 'mc'}   
     ])   
    }); 
    
    var storejh = new Ext.data.Store({  //井号选择下拉框
     proxy: new Ext.data.HttpProxy({   
         url: '../servlet/CommonMethod?command=getjh' //这里是参数可以顺便写,这个数据源是在第一个下拉框select的时候load的
     }),   
     reader: new Ext.data.JsonReader({   
     root: 'jhs',   
     id: 'jh'  
     }, [   
         {name: 'jh', mapping: 'jh'},   
         {name: 'jm', mapping: 'jm'}   
     ])   
    });

 2、然后定义ComboBox


Js代码 复制代码
//单位字段   
   var dwField = new Ext.form.ComboBox({   
    fieldLabel:'所属队',   
    name:'DW',   
    //hiddenName:'DW',//hiddenName才是提交到后台的input的name(既select的value值)      
    allowBlank:false,   
    mode: 'local',   
    readOnly:true,   
    triggerAction:'all',   
    anchor:'90%',   
    emptyText:'请选择...',//默认值      
    store:storedm,   
    listeners:{        
           select : function(combo, record,index)   
           {      
            jhField.clearValue(); //可以实现当队下拉值变更时,清空之前井号下拉选项中的值   
               
           storejh.proxy= new Ext.data.HttpProxy({url: '../servlet/CommonMethod?command=' + combo.value}); //根据队下拉选项的改变,动态取出对应的井   
                  
           storejh.load(); //加载井下拉框的store      
           }      
       },   
       listClass: 'x-combo-list-small', //测试的属性   
       lastQuery:'', //测试的属性   
    valueField: 'id',   
    displayField: 'mc'  
});   
  
storedm.load(); //载入队下拉框的信息   
  
//井号字段   
   var jhField = new Ext.form.ComboBox({      
       xtype:'combo',      
       store: storejh,      
       valueField :"jh",      
       displayField: "jm",      
       //数据是在本地      
       mode: 'local',      
       //forceSelection: true,//必须选择一项      
       emptyText:'请选择井号...',//默认值      
       hiddenName:'JH',//hiddenName才是提交到后台的input的name(既select的value值)      
       editable: false,//不允许输入      
       triggerAction: 'all',//因为这个下拉是只能选择的,所以一定要设置属性triggerAction为all,不然当你选择了某个选项后,你的下拉将只会出现匹配选项值文本的选择项,其它选择项是不会再显示了,这样你就不能更改其它选项了。      
       allowBlank:false,//该选项值不能为空      
       fieldLabel: '井号',      
       id : 'jh_id',      
       name: 'JH',      
       anchor:'90%'     
   });

//设置ComboBox列表数据源参数
        var comboxStore = new Ext.data.Store({
            proxy: new Ext.data.HttpProxy({
                url: "http://www.cnblogs.com/Service/SystemService/RoleService.ashx?Method=GetAllRoles"
            }),
            reader: new Ext.data.JsonReader({
                root: 'Table',
                totalProperty: 'RecordCount',
                id: 'RoleId',
                fields: ['RoleId', 'RoleName']
            })
        });
        comboxStore.load();
        //角色下拉框
        var roleCombox = new Ext.form.ComboBox({
            id: 'rCombox',
            //xtype: 'combo',
            fieldLabel: '所属角色',
            emptyText: '请选择所属角色',
            name: 'RoleName',
            anchor: '98%',
            store: comboxStore,
            displayField: 'RoleName',
            valueField: 'RoleId',
            hiddenName: 'RoleId',
            typeAhead: true,
            mode: 'remote',
            triggerAction: 'all',
            selectOnFocus: true,
            blankText: '角色不能为空',
            allowBlank: false,
            editable: false
        });

3.comboBox在表单中提交值的问题

  有如下两种方法:

    1.params: { RoleId: Ext.getCmp('rCombox').getValue() }

     通过params传 getValue()取到的是valueField中的值

    2.通过配置hiddenName,来保存valueField中的值,否则将提交name属性中的值即dispalyField的值

4.参数介绍

  mode:数据来源方式 local本地 remote 表示从服务器读取数据

  selectOnFocus:值为 ture 时表示字段获取焦点时自动选择字段既有文本

  editable:true表示可以编辑

分享到:
评论

相关推荐

    EXTJS的COMBOBOX级联实现和数据提交VALUE[文].pdf

    EXTJS的ComboBox级联实现是Web应用程序中常见的一种交互方式,尤其在数据表单中用于联动选择。在本文中,我们将深入探讨EXTJS如何实现ComboBox的级联效果,并理解其数据提交VALUE的工作原理。 首先,我们需要创建两...

    extJs ComboBox级联

    实现ExtJS ComboBox级联的关键在于理解其数据绑定和事件监听机制。以下是一些关键知识点: 1. **数据源**:ComboBox的数据通常来自一个远程服务器或者本地数据结构,如Store。Store负责加载和管理数据,它可以是...

    extJs4 ComboBox组合框实例

    extJs4 ComboBox 代码组合框实例,ComboBox 各个主要参数详细解释

    Extjs3.4.0版本 多选下拉框效果支持多选/全选/全不选

    首先,我们来看看`LovCombo.js`,这可能是一个自定义的组合框组件,扩展了ExtJS的原生ComboBox类,以实现多选功能。在ExtJS中,创建这样的组件通常涉及到以下步骤: 1. **创建一个新的类**:定义一个继承自Ext.form...

    ExtJS 设置级联菜单的默认值

    在具体实现上,首先需要准备两个ComboBox组件,其中一个作为一级菜单,另一个作为二级菜单。其中,二级菜单的选项内容依赖于一级菜单的选项。以下是具体的操作步骤: 1. 准备数据源。首先定义两个数据源,分别对应...

    Extjs4.0 ComboBox如何实现三级联动

    很多网友在问,Extjs4.0 ComboBox如何实现,好在之前用3.x实现过一个三级联动,如今用Extjs4.0来实现同样的联动效果。其中注意的一点就是,3.x中的model:’local’在Extjs4.0中用queryMode: ‘local’来表示,而且在...

    Extjs4下拉树菜单ComboBoxTree支持单选和多选并且支持展开选中指定节点的通用控件

    在这个特定的情况下,我们讨论的是一个定制的下拉树菜单控件——ComboBoxTree,它在ExtJS4中实现了单选和多选功能,并且具备展开选中指定节点的能力。这个控件在实际项目中已经被广泛使用并证明了其稳定性和实用性,...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    ComboboxTree是ExtJS中的一个自定义组件,它扩展了标准的ComboBox组件,增加了树状结构的功能。用户可以在下拉列表中看到一个树形结构,逐级展开节点,选择需要的项。这种组件特别适合于那些需要展示层级关系且允许...

    ssh2+extCombobox联动动态下拉框

    当我们将SSH2与ExtJS ComboBox结合使用时,可以创建动态联动的下拉框,实现数据的级联选择,提高用户交互体验。 在SSH2框架中,Struts2负责处理用户的请求和视图展示,Spring则管理应用的业务逻辑和依赖注入,...

    Ext combo 下拉框级联

    实现级联下拉框的核心在于数据的联动和更新。这通常通过监听第一个下拉框的选中事件来完成,当用户在父级ComboBox中选择一个项时,会触发一个事件,这个事件可以用来更新子级ComboBox的数据源。在Ext JS中,可以通过...

    EXTJS记事本 当CompositeField遇上RowEditor

    在这个场景中,开发者面临的问题是如何在EXTJS的RowEditor中处理由多个Combobox(下拉框)组成的CompositeField,以便实现级联筛选功能。RowEditor是EXTJS中的一个组件,它允许用户直接在表格行上编辑数据,提供了...

    Extjs4学习指南

    - **Combobox三级联动**:实现级联选择框,用于展示层次关系的数据。 #### 5. 员工管理系统 最后,本章节通过构建一个简单的员工管理系统来综合运用前面所学的知识点。 - **准备工作**:介绍项目开始前所需的准备...

    Extjs4-学习指南

    - **Combobox 三级联动**:实现级联选择框的功能。 #### 5. 员工管理系统 - **准备工作**:规划项目结构和所需技术栈。 - **框架的搭建**:配置 Extjs 和后端服务。 - **菜单的实现**:创建导航菜单。 - **实现...

    ExtJS 下拉多选框lovcombo

    ### ExtJS 下拉多选框lovcombo:省份与城市级联选择实现 #### 背景介绍 在软件开发过程中,经常会遇到需要实现省份、城市等地理位置信息的级联选择功能的需求。对于前端开发者而言,如何高效地实现这一功能成为了...

    Extjs控件属性(详细版)

    这个宽度可以级联到字段集内的子容器,确保一致的外观。 - **layout**:定义字段集的布局方式,默认为`form`布局,即垂直排列的表单项。 #### 三、Ext.form.DateField 控件属性 **Ext.form.DateField** 提供了日期...

    EXT2.0中文教程

    4.4.7. 露一小手,组合上面所知,省市县三级级联。哈哈~ 4.4.7.1. 先做一个模拟的,所有数据都在本地 4.4.7.2. 再做一个有后台的,需要放在服务器上咯 4.5. 把form里的那些控件全部拿出来看看 4.6. form提交数据的...

    Ext 开发指南 学习资料

    4.4.7. 露一小手,组合上面所知,省市县三级级联。哈哈~ 4.4.7.1. 先做一个模拟的,所有数据都在本地 4.4.7.2. 再做一个有后台的,需要放在服务器上咯 4.5. 把form里的那些控件全部拿出来看看 4.6. form提交数据的...

Global site tag (gtag.js) - Google Analytics