当前位置: 首页 > news >正文

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


 

     因项目需要,做了这个,发上来给大家参考一下,呵呵。

     刚开始的思路是通过定义好的数组通过comboboxstoreloadData方式加载数据,后来发现还不如直接定义好数组格式就是store的格式,然后直接附加到storedata里更简单,而且也方便城市的数据的载入。

     我们来看看两个comboBox的定义:

 

 

       var provinceComBo=new Ext.form.ComboBox({

              hiddenName:'province',

              name: 'province_name',

              valueField:"text",

              displayField:"text",

              mode:'local',

              fieldLabel: '所在省份',

              blankText:'请选择省份',

              emptyText:'请选择省份',

              editable:false,

              anchor:'90%',

              forceSelection:true,

              triggerAction:'all',

              store:new Ext.data.SimpleStore({fields: ["text","city"],data:citys,sortInfo:{field:'text'}}),

              listeners:{

                     select:function(combo, record,index){

                            cityCombo.clearValue();

                            cityCombo.store.loadData(record.data.city);

                     }

              }

       })

 

       var cityCombo=new Ext.form.ComboBox({

              hiddenName:'city',

              name:'city_name',

              valueField:"text",

              displayField:"text",

              mode:'local',

              fieldLabel: '所在城市',

              blankText:'请选择城市',

              emptyText:'请选择城市',

              editable:false,

              anchor:'90%',

              forceSelection:true,

              triggerAction:'all',

              store:new Ext.data.SimpleStore({fields: ["text"],data:[],sortInfo:{field:'text'}})

       });

 

comboBox的其它定义我就不详细说了,有兴趣可以参考我的文章《Ext2.0 form使用实例》。我们重点研究一下它的sotre的定义。省份的store定义如下:

 

              store:new Ext.data.SimpleStore({fields: ["text","city"],data:citys,sortInfo:{field:'text'}}),

              listeners:{

                     select:function(combo, record,index){

                            cityCombo.clearValue();

                            cityCombo.store.loadData(record.data.city);

                     }

              }

 

store定义了两个字段,第一字段就是省份的显示和值字段,第二个字段就比较特殊了,保存了该省份的城市数组。这样的好处就是当出发选择事件的时候,直接将city字段的数据调入到城市的store就可以选择该省份的城市了,避免了通过循环对数据进行处理操作。不过在城市加载数据前,一定要清除城市选择的输入值(cityCombo.clearValue();)。

城市comboboxstore定义没什么特别,就是显示城市名称可以了。

在两个combobox中我还设置了一个排序(sortInfo:{field:'text'}),这样就更方便了。不过要按中文排序,得重载storeapplySort属性就行了,具体可以参考一下地址:

http://jstang.5d6d.com/thread-362-1-4.html

 

具体的数据定义可看一下例程里面的city.js

如果需要一个id怎么办?重新定义一下store的字段和修改city的数据定义就可以了。如果数据在后台,则可以通过选择省份后动态修改cityurl就行了。

希望通过这个例子,大家可以很轻松的做出combobox联动的其它例子,呵呵。

 

点击这里下载例程。

 

转载于:https://www.cnblogs.com/hainange/archive/2007/10/23/6334357.html

相关文章:

  • 认识IBM 随机启动选项及优化 -转
  • PSR : php编码规范
  • alexa工具条下载安装图解(支持51CTO的发展)
  • spring oauth2 配置流程
  • [转发]项目修复-把有麻烦的项目带向成功
  • 苹果应用的上线步骤
  • 源天软件Velcro解决方案
  • 【转载】ANSYS 动力分析 (9) - 瞬态动力分析 (1)
  • [WCF]重载
  • [python] 之 函数简介
  • [转]SharePoint升级后错误,解决方案
  • RMQ算法模板
  • 自己复制粘贴出来的第一个java小程序
  • 深入浅出JVM
  • C#3.0介绍
  • angular2 简述
  • Codepen 每日精选(2018-3-25)
  • fetch 从初识到应用
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • js如何打印object对象
  • JWT究竟是什么呢?
  • laravel with 查询列表限制条数
  • MySQL-事务管理(基础)
  • node.js
  • overflow: hidden IE7无效
  • Promise面试题2实现异步串行执行
  • Spring-boot 启动时碰到的错误
  • SpriteKit 技巧之添加背景图片
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Terraform入门 - 1. 安装Terraform
  • Terraform入门 - 3. 变更基础设施
  • ucore操作系统实验笔记 - 重新理解中断
  • windows下如何用phpstorm同步测试服务器
  • 给github项目添加CI badge
  • 观察者模式实现非直接耦合
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 温故知新之javascript面向对象
  • 我建了一个叫Hello World的项目
  • 数据可视化之下发图实践
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Apache SeaTunnel 究竟是什么?
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (39)STM32——FLASH闪存
  • (70min)字节暑假实习二面(已挂)
  • (c语言)strcpy函数用法
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (九)c52学习之旅-定时器
  • (排序详解之 堆排序)
  • (一)Dubbo快速入门、介绍、使用
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)VirtualBox安装增强功能