先不多说,上代码(关键代码):
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要注意的部分都贴出来了,第二个下拉框类似,不再赘述。
效果如图:
相关推荐
ext,ext combobox,ext二级联动,ext combobox二级联动 ___本人的原则:上传好东西,但绝不便宜.因为自己的心血 ext combobox二级联动,ext ,ext combobox,combobox,combobox二级联动,ext 二级联动 groupCombo.on('...
下面我们将详细讨论如何在ExtJS中实现Combobox的二级联动。 一、基础概念 1. Combobox:ExtJS中的Combobox是FormPanel的一个字段,它结合了文本输入框和下拉列表,提供了一种选择或输入数据的方式。 2. 二级联动:...
在"Ext二级联动完整例子"项目中,我们可以预见到以下关键知识点: 1. **ExtJS组件**:主要涉及`Ext.form.field.ComboBox`,它是实现联动效果的核心组件。ComboBox提供了一个可搜索、可下拉选择的输入框,支持配置...
在Web应用程序中,我们经常需要实现二级联动效果,即一个ComboBox的选择会影响另一个ComboBox的显示内容。这在数据关联和筛选场景中尤为常见,例如省份和城市的关联选择。本文将深入探讨如何在ExtJS中实现ComboBox的...
在探讨“Ext中Combo过滤”的实现机制之前,我们先来了解一下基本概念。Ext是一个功能强大的JavaScript框架,用于构建复杂的Web应用程序。它提供了大量的UI组件,其中就包括了`ComboBox`(简称`Combo`)。`ComboBox`...
EXT多选COMBO是一种在EXTJS框架中实现的组件,用于创建具有多选功能的下拉框。EXTJS是一款强大的JavaScript UI库,它提供了一系列预定义的组件,帮助开发者构建富客户端应用程序。在这个特定的场景中,“EXT多选...
在IT领域,"Ext combo 下拉框级联"是一个常见的前端UI组件开发技术,主要应用于构建交互式的Web应用。Ext JS是一个强大的JavaScript框架,用于创建富客户端应用,其中的ComboBox(下拉框)组件是其核心功能之一。...
Ext4和SpringMVC是两种在Java开发领域广泛使用的开源技术。Ext4是一个JavaScript库,主要用于构建复杂的Web应用程序,提供丰富的用户界面组件和强大的数据管理功能。而SpringMVC是Spring框架的一部分,它是一个用于...
在用ExtJs+myEclipse6+ssh做项目时需要动态级联菜单功能(就是从数据库中拿数据),因为初次接触Ext,在网上没找到动态联动,只找到了静态联动,于是花了几个小时边学边做终于成功了!需要的兄弟姐妹可以看看,只实现...
二、ext4_utils简介 ext4_utils是一个针对ext4文件系统的工具集合,包含了创建、检查、调整和挂载ext4文件系统所需的各种命令。这些命令包括: 1. **mkfs.ext4**:创建新的ext4文件系统。用户可以指定分区、文件...
包含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实现带复选框的多选下拉框"就是一个典型的例子,它涉及到前端开发中的组件设计与实现。这个功能在诸如数据过滤、选项配置等场景中非常常见。下面我们将详细讨论如何利用源码、工具来创建这样的功能。...
在Android系统中,对设备进行刷机或者系统更新时,经常需要处理ext4文件系统。本文将深入探讨如何使用`ext4-utils`工具集来创建`make_ext4fs`和`simg2img`这两个关键工具,这对于理解Android系统底层工作原理以及...
4. **EXT4 extent支持**: EXT4引入了extent的概念,以优化大文件的存储,提高性能。Ext2Read能够正确解析EXT4分区中的extent,确保文件访问的准确性。 5. **递归拷贝**: 在需要备份或迁移数据时,用户可以使用Ext2...
在Android系统中,EXT4文件系统是广泛使用的主文件系统,用于存储应用程序、系统文件和其他数据。EXT4-extractor是一个专为Android设计的工具,它能够帮助开发者和故障排除人员解析EXT4格式的镜像文件,将其转换为一...
在Android开发中,ext4文件系统打包是系统镜像制作的重要一环。本文档将详细介绍在Android平台上使用make_ext4fs工具打包ext4文件系统镜像的过程,并对相关的操作注意事项进行说明。同时,文档也会涉及使用simg2img...
EXT4,全称为Fourth Extended File System,是Linux操作系统中广泛使用的日志文件系统之一,它在2008年被引入Linux内核。EXT4在EXT3的基础上进行了多项改进,以提升性能、可靠性和可扩展性。这个源码包包含了EXT4...
在Windows操作系统中,由于默认不支持Linux文件系统如EXT4,因此无法直接读取或写入EXT4格式的分区。但有一些第三方工具可以帮助我们解决这个问题,其中之一就是Ext2Fsd。Ext2Fsd是一个免费的开源软件,专门设计用于...
在本文中,我们将深入探讨如何使用Ext 2.0的ComboBox组件实现省份和城市联动选择框的功能。Ext是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括ComboBox,用于创建下拉选择框。在这个例程中,我们将看到...