`
laitaogood
  • 浏览: 107576 次
  • 性别: Icon_minigender_1
  • 来自: 豫章郡→紫禁城
社区版块
存档分类
最新评论

Ext二级联动

阅读更多
        项目需求:有两个下拉列表A和B。当你点击A列表里的一个值时,再点击B列表里面对应的值。也就是说,B列表的值是由A列表里的某个值决定的。B列表的值随A列表的值的不同而不同。由于使用了Ext作为表现层,所以不可避免的使用到了ComboBox。
        解决思路:点击A列表,从后台加载一条JSON格式的数据,然后在A列表里显示。当点击A列表里的某个值时,触发一个C事件。C事件将重新设置B列表,同时B列表从后台请求一条JSON格式的数据,同时B列表又加载新的数据源。
        好了,有了解决思路那就开始写代码吧。
        1、首先,我们定义一个groupDS和一个groupCombo。
var groupDS = new Ext.data.Store({
								proxy : new Ext.data.HttpProxy({
											url : 'getGroupsByUser.action'
										}),
								reader : new Ext.data.JsonReader({
											root : 'rows',
											totalProperty : 'total',
											id : 'groupId',
											fields : ['groupId', 'groupName']
										})
							});
					groupDS.load();

					var groupCombo = new Ext.form.ComboBox({
								// store: store,
								store : groupDS,
								fieldLabel : '分组',
								displayField : 'groupName',
								mode : 'local',
								emptyText : '请选择一个分组',
								valueField : 'groupId',
								hiddenName : 'groupId',
								anchor : '100%'

							});

        2、定义一个typeReader,一个typeDS和typeCombo。
var typeReader = new Ext.data.JsonReader({
								id : 'typeId',
								root : 'rows',
								totalProperty : 'total',
								fields : ['typeId', 'typeName', 'isIncome']
							});

					var typeDS = new Ext.data.Store({
								proxy : new Ext.data.HttpProxy({
											url : 'getTypesByUser.action'
										}),
								reader : typeReader
							});

					var typeCombo = new Ext.form.ComboBox({
								fieldLabel : '类型',
								store : typeDS,
								emptyText : '请选择一个类型',
								allowBlank : false,
								loadingText : 'searching...',
								displayField : 'typeName',
								mode : 'local',
								editable : true,
								valueField : 'typeId',
								hiddenName : 'typeId',
								anchor : '100%',
								triggerAction : 'all'
							});

        3、然后再定义一个选择事件。
groupCombo.on('select', function() {
								typeCombo.reset();
								typeDS.proxy = new Ext.data.HttpProxy({
											url : 'getTypesByUser.action?groupId='
													+ groupCombo.getValue()
								});
								typeDS.load();
					});

        好了,现在我们就完成了这个二级联动的小应用。同理,三级联动同样可以通过这种方式来实现。
分享到:
评论
5 楼 yueyuxiang 2013-11-29  
有没有一种方式,选择按钮的时候不调用action,这样的话反应就会快很多!
4 楼 laitaogood 2009-11-21  
用手机发表一下我的看法
3 楼 awdrhwadr 2009-06-16  
以前用DWR做过一个,正好对比一下,学习学习
2 楼 laitaogood 2008-12-19  
fanke0000 写道

大哥! 我按照你写的修改了一下,可是二级下拉没数据。

可能是你返回的数据有错误或者根本就没返回,请确认是否返回JSON格式的数据
1 楼 fanke0000 2008-12-19  
大哥! 我按照你写的修改了一下,可是二级下拉没数据。


  var cityDS = new Ext.data.Store({   
                                proxy : new Ext.data.HttpProxy({   
                                            url : 'DATA/Area/GetAllCity.aspx'  
                                        }),   
                                reader : new Ext.data.JsonReader({   
                                            root : 'data',   
                                            totalProperty : 'total',   
                                            id : 'cityid',   
                                            fields : ['cityid', 'cityname']   
                                        })   
                            });   
                    cityDS.load();   
  
                    var cityCombo = new Ext.form.ComboBox({   
                                store : cityDS,   
                                fieldLabel : '市级',   
                                displayField : 'cityname',   
                                mode : 'local',   
                                emptyText : '请选择一个市级',   
                                valueField : 'cityid',   
                                hiddenName : 'cityid',   
                                anchor : '100%'  
  
                            });  


var countyReader = new Ext.data.JsonReader({   
                                id : 'countyid',   
                                root : 'data',   
                                totalProperty : 'total',   
                                fields : ['countyid', 'countyname', 'cityid']   
                            });   
  
                    var countyDS = new Ext.data.Store({   
                                proxy : new Ext.data.HttpProxy({   
                                            url : 'DATA/Area/getCountyByCity.aspx?cityId='  
                                        }),   
                                reader : countyReader   
                            });   
  
                    var countyCombo = new Ext.form.ComboBox({   
                                fieldLabel : '类型',   
                                store : countyDS,   
                                emptyText : '请选择一个类型',   
                                allowBlank : false,   
                                loadingText : 'searching...',   
                                displayField : 'countyname',   
                                mode : 'local',   
                                editable : true,   
                                valueField : 'countyid',   
                                hiddenName : 'countyid',   
                                anchor : '100%',   
                                triggerAction : 'all'  
                            });  


cityCombo.on('select', function() {   
                                countyCombo.reset();   
                                countyDS.proxy = new Ext.data.HttpProxy({   
                                            url : 'DATA/Area/getCountyByCity.aspx?cityId='  
                                                    + cityCombo.getValue()   
                                });   
                                countyDS.load();   
                    });

相关推荐

    Ext二级联动完整例子

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

    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. 二级联动:...

    extjs的ComboBox 2级联动

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

    JSP页面下拉框三级联动

    下拉框三级联动是指在用户选择第一级下拉框选项时,第二级下拉框根据第一级的选择动态更新显示内容;同理,第三级下拉框也会根据第二级的选择进行相应的更新。这种设计可以极大地简化用户在选择多级分类数据时的操作...

    jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

    在开发Web应用时,我们经常需要实现交互性强的用户界面,比如二级联动菜单。这种功能在JSP(Java Server Pages)中可以通过与数据库交互来动态填充下拉框,并结合JavaScript和Ajax技术实现。本文将详细讲解如何使用...

    用Ext 2_0 combobox 做的省份和城市联动选择框 DOJO中国

    在本案例中,“用Ext 2_0 combobox 做的省份和城市联动选择框”是一种交互式UI设计,常用于地理信息的选择,例如用户先选择省份,然后根据所选省份动态加载对应的城市选项。 Ext 2.0的Combobox组件主要包含以下几个...

    Extjs3+MySQL后台数据库实现省份城市二级联动

    本文将深入探讨如何使用ExtJS 3结合MySQL来实现一个省份城市二级联动的前端与后台系统。 首先,ExtJS 3提供了丰富的组件和API,使得开发者可以轻松创建各种复杂的用户界面,如下拉菜单、表格、表单等。在这个案例中...

    ext tree grid 的高级实例运用

    此外,还会了解到EXT JS中的模型(Model)、存储(Store)和视图(View)的联动机制,这些是EXT JS组件化开发的基础。 总之,`ext tree grid`的高级实例运用展示了EXT JS的强大之处,它能够轻松地处理复杂的数据...

    ext文档 和实例

    二、EXT Grid EXT Grid是一种灵活的数据显示组件,可用来展示大量结构化数据。它支持行和列的排序、分页、过滤、编辑等功能,且能与后台数据库无缝对接。`Ext.Grid详解.docx`可能会深入探讨EXT Grid的配置选项,如...

    extJs 下拉框联动实现代码

    代码如下:// 第一个下拉框 var parentStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: ‘loadByParentid.action?parentid=1001’ }), reader: ... // 第二个下拉框 var childStore = new Ext.data

    Extjs4---combobox省市区三级联动+struts2

    ### Extjs4---combobox省市区三级联动+struts2 #### 一、技术背景与原理 本案例涉及的关键技术主要包括Extjs4框架中的`combobox`组件以及Struts2框架,通过这两种技术实现了省市区三级联动的效果。下面将详细介绍...

    Ext combo 下拉框级联

    级联下拉框意味着一个下拉框的选项取决于另一个下拉框的选择,这种联动效果常见于地理信息选择、部门与员工选择等场景,为用户提供了一种便捷的多级选择方式。 在Ext JS中,ComboBox提供了级联数据加载的功能,这...

    extjs网页控件开发

    在一级、二级、三级联动下拉框中,选择一个选项将影响下一个下拉框的显示内容,提供了一种层次清晰的导航方式。在ExtJS中,这通常通过组合框(ComboBox)组件和数据存储(Store)配合实现。每个级别的下拉框都有自己...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -增加中国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用...

    extjs5.1引用包

    6. **强大的表单组件**:提供多种表单控件,支持验证、自定义布局和联动效果。 7. **触摸事件支持**:优化了触摸事件处理,提高了在移动设备上的交互体验。 二、引用ExtJS 5.1 1. **引入CSS和JavaScript**:首先,...

    基于Spring MVC的web框架 1.1.11

    # demoWeb 一个基于SpringMVC的web框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径...Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper doc内有相关文档

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    # demoWeb 一个基于SpringMVC的web框架 1.0.5 ...Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    # demoWeb 一个基于SpringMVC的web框架 1.0.5 ...Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强

    国讯通用OA协同办公系统源码

    同时,对于希望定制或二次开发OA系统的公司来说,拥有源码意味着可以根据实际需求进行灵活调整,满足特定业务场景。 通过分析压缩包中的文件,如【新建文件夹(1)】和【国讯通用OA协同办公系统源码】,可以进一步...

Global site tag (gtag.js) - Google Analytics