`
coolboy09
  • 浏览: 7916 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ext4 combo二级联动

阅读更多

先不多说,上代码(关键代码):

tbar : ['poolId:',{  
        xtype : 'combo',  
        id : 'poolId',  
        name : 'pool',  
        editable : true,  
        value : '',  
        store : Ext.getStore('poolStore'),  
        displayField : 'poolName',  
        valueField : 'poolValue',  
        matchFieldWidth: false,  
        //queryMode: 'remote',  
        triggerAction:'all',  
        listConfig : {  
            loadingText: 'Loading...',  
            width: 200,  
            autoHeight:true  
        },  
        listeners : {  
            'select' : function(obj,records,options){  
                Ext.getCmp('triggerId').clearValue();   
                var triggerStore = Ext.data.StoreManager.lookup('triggerStore');   
                triggerStore.getProxy().extraParams['criteria.poolId'] = obj.getValue();  
                triggerStore.load();   
            }  
        }  
    },'-','triggerId:',{  
        xtype : 'combo',  
        id : 'triggerId',  
        name : 'trigger',  
        editable : true,  
        value : '',  
        store : Ext.getStore('triggerStore'),  
        displayField : 'triggerName',  
        valueField : 'triggerValue',  
        matchFieldWidth: false,  
        queryMode: 'local',  
        triggerAction:'all',  
        listConfig : {  
            loadingText: 'Loading...',  
            width: 200,  
            autoHeight:true  
        }  
    },'-',{  
        text : '查询',  
        iconCls : 'icon-search',  
        action : 'select'  
    }]

      上面的代码主要是grid上的tbar部分,这里有几点需要注意。配置项store : Ext.getStore('poolStore'),这里是根据storeId获取store对象,因为我这里使用的是Ext4的MVC模式,这里贴出store部分代码(该部分代码在controller中):

Ext.create('Kira.store.PoolStore', {  
        storeId : 'poolStore'  
    });

 定义store的代码如下:

Ext.define('Kira.store.PoolStore', {  
    extend : 'Ext.data.Store',  
    model : 'Kira.model.PoolStore',  
    remoteFilter : true,//远程过滤  
    remoteSort : true,//远程排序  
    proxy : {  
        type : 'ajax',  
        url : 'triggerMetadata/getAllPoolIdList.action',  
        actionMethods : {  
            read : 'POST'  
        },  
        extractResponseData : function(response){  
            var jsonArr = [],jsonObj = {};  
            var resp =Ext.decode(response.responseText);  
            var resultData = resp["resultData"];//the rows object  
            for(var i=0,len = resultData.length;i<len;i++){  
                jsonObj['poolValue']=resultData[i];  
                jsonObj['poolName']=resultData[i];  
                jsonArr.push(jsonObj);  
                jsonObj = {};  
            }  
            return jsonArr;    
        },  
        reader : {  
            type : 'json',  
            root : 'resultData'  
        }  
    }  
      
});

 这里由于项目的原因,后端返回的数据并不是标准格式,笔者在这里重写了Ext的方法 : extractResponseData, 该方法在源代码里定义如下:

/** 
     * Template method to allow subclasses to specify how to get the response for the reader. 
     * @template 
     * @private 
     * @param {Object} response The server response 
     * @return {Object} The response data to be used by the reader 
     */  
    extractResponseData: function(response) {  
        return response;  
    },

 该方法很简单,只是简单返回 response对象,注释里说明了该方法允许子类根据需要重写该方法。这里要返回如下格式的数据即可:

{
	"contextData":{
		"paging":{
			"currentPage":1,
			"currentResultNum":0,
			"firstPage":0,
			"firstResult":0,
			"firstRownum":1,
			"inited":false,
			"lastPage":0,
			"lastRownum":2147483647,
			"maxResults":2147483647,
			"totalResults":0
		}
	},
	"resultData":["yihaodian/web-pool-simulator"]
}

 定义Model比较简单:

Ext.define('Kira.model.PoolStore', {  
    extend : 'Ext.data.Model',  
    fields : ['poolValue', 'poolName']  
});

       tbar里的另外的配置项:queryMode和之前版本的mode一样,listConfig配置项主要是定义combo下拉框,一般来说,默认情况下,下拉框的宽度和combo输入框的宽度是一样的,这里的配置项可以让你定制下拉框的宽度等。这里select部分:

'select' : function(obj,records,options){  
    Ext.getCmp('triggerId').clearValue();   
        var triggerStore = Ext.data.StoreManager.lookup('triggerStore');   
        triggerStore.getProxy().extraParams['criteria.poolId'] = obj.getValue();  
        triggerStore.load();   
}

       是联动的关键,当选择第一个combo时,要清空第二个要级联的combo,然后传递该下拉选择值。这里将第一个combo要注意的部分都贴出来了,第二个下拉框类似,不再赘述。

效果如图:



 

 

  • 大小: 10.8 KB
0
1
分享到:
评论

相关推荐

    ext combobox二级联动

    ext,ext combobox,ext二级联动,ext combobox二级联动 ___本人的原则:上传好东西,但绝不便宜.因为自己的心血 ext combobox二级联动,ext ,ext combobox,combobox,combobox二级联动,ext 二级联动 groupCombo.on('...

    ExtJS Combobox二级联动列子

    下面我们将详细讨论如何在ExtJS中实现Combobox的二级联动。 一、基础概念 1. Combobox:ExtJS中的Combobox是FormPanel的一个字段,它结合了文本输入框和下拉列表,提供了一种选择或输入数据的方式。 2. 二级联动:...

    Ext二级联动完整例子

    在"Ext二级联动完整例子"项目中,我们可以预见到以下关键知识点: 1. **ExtJS组件**:主要涉及`Ext.form.field.ComboBox`,它是实现联动效果的核心组件。ComboBox提供了一个可搜索、可下拉选择的输入框,支持配置...

    extjs的ComboBox 2级联动

    在Web应用程序中,我们经常需要实现二级联动效果,即一个ComboBox的选择会影响另一个ComboBox的显示内容。这在数据关联和筛选场景中尤为常见,例如省份和城市的关联选择。本文将深入探讨如何在ExtJS中实现ComboBox的...

    ext中combo过滤

    在探讨“Ext中Combo过滤”的实现机制之前,我们先来了解一下基本概念。Ext是一个功能强大的JavaScript框架,用于构建复杂的Web应用程序。它提供了大量的UI组件,其中就包括了`ComboBox`(简称`Combo`)。`ComboBox`...

    EXT多选COMBO

    EXT多选COMBO是一种在EXTJS框架中实现的组件,用于创建具有多选功能的下拉框。EXTJS是一款强大的JavaScript UI库,它提供了一系列预定义的组件,帮助开发者构建富客户端应用程序。在这个特定的场景中,“EXT多选...

    Ext combo 下拉框级联

    在IT领域,"Ext combo 下拉框级联"是一个常见的前端UI组件开发技术,主要应用于构建交互式的Web应用。Ext JS是一个强大的JavaScript框架,用于创建富客户端应用,其中的ComboBox(下拉框)组件是其核心功能之一。...

    Ext4+SpringMVC实例Demo源码

    Ext4和SpringMVC是两种在Java开发领域广泛使用的开源技术。Ext4是一个JavaScript库,主要用于构建复杂的Web应用程序,提供丰富的用户界面组件和强大的数据管理功能。而SpringMVC是Spring框架的一部分,它是一个用于...

    Ext动态联动菜单例子

    在用ExtJs+myEclipse6+ssh做项目时需要动态级联菜单功能(就是从数据库中拿数据),因为初次接触Ext,在网上没找到动态联动,只找到了静态联动,于是花了几个小时边学边做终于成功了!需要的兄弟姐妹可以看看,只实现...

    ext4_utils

    二、ext4_utils简介 ext4_utils是一个针对ext4文件系统的工具集合,包含了创建、检查、调整和挂载ext4文件系统所需的各种命令。这些命令包括: 1. **mkfs.ext4**:创建新的ext4文件系统。用户可以指定分区、文件...

    ext4解压工具和操作方法.rar

    包含3个工具:make_ext4fs、simg2img、kusering.sh。 1. 解压system.img为system.img.ext4。命令:simg2img system.img system.img.ext4 2. 创建system.img.ext4挂载目录tmp; 命令:mkdir tmp; 3. 挂载system....

    ext4实现带复选框的多选下拉框

    标题提到的"ext4实现带复选框的多选下拉框"就是一个典型的例子,它涉及到前端开发中的组件设计与实现。这个功能在诸如数据过滤、选项配置等场景中非常常见。下面我们将详细讨论如何利用源码、工具来创建这样的功能。...

    ext4-util源代码——制作make_ext4fs和simg2img工具

    在Android系统中,对设备进行刷机或者系统更新时,经常需要处理ext4文件系统。本文将深入探讨如何使用`ext4-utils`工具集来创建`make_ext4fs`和`simg2img`这两个关键工具,这对于理解Android系统底层工作原理以及...

    Windows读取Ext4分区的工具 Ext2Read

    4. **EXT4 extent支持**: EXT4引入了extent的概念,以优化大文件的存储,提高性能。Ext2Read能够正确解析EXT4分区中的extent,确保文件访问的准确性。 5. **递归拷贝**: 在需要备份或迁移数据时,用户可以使用Ext2...

    ext4-exactor.zip

    在Android系统中,EXT4文件系统是广泛使用的主文件系统,用于存储应用程序、系统文件和其他数据。EXT4-extractor是一个专为Android设计的工具,它能够帮助开发者和故障排除人员解析EXT4格式的镜像文件,将其转换为一...

    android ext4文件系统打包详解

    在Android开发中,ext4文件系统打包是系统镜像制作的重要一环。本文档将详细介绍在Android平台上使用make_ext4fs工具打包ext4文件系统镜像的过程,并对相关的操作注意事项进行说明。同时,文档也会涉及使用simg2img...

    ext4文件系统源码

    EXT4,全称为Fourth Extended File System,是Linux操作系统中广泛使用的日志文件系统之一,它在2008年被引入Linux内核。EXT4在EXT3的基础上进行了多项改进,以提升性能、可靠性和可扩展性。这个源码包包含了EXT4...

    在windows下使用Ext2Fsd访问EXT4分区

    在Windows操作系统中,由于默认不支持Linux文件系统如EXT4,因此无法直接读取或写入EXT4格式的分区。但有一些第三方工具可以帮助我们解决这个问题,其中之一就是Ext2Fsd。Ext2Fsd是一个免费的开源软件,专门设计用于...

    用Ext 2.0 combobox 做的省份和城市联动选择框的例程

    在本文中,我们将深入探讨如何使用Ext 2.0的ComboBox组件实现省份和城市联动选择框的功能。Ext是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括ComboBox,用于创建下拉选择框。在这个例程中,我们将看到...

Global site tag (gtag.js) - Google Analytics