`
leon1509
  • 浏览: 536226 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
转载地址:http://www.dojochina.com/index.php?q=node/766

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

     我们来看看两个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();)。

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

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

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

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

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

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


点击这里下载例程。
或下载附件。
分享到:
评论

相关推荐

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

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

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

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

    extjs的ComboBox 2级联动

    ExtJS的ComboBox是一个非常强大的组件,它用于创建下拉选择框。在Web应用程序中,我们经常需要实现二级联动效果,即一个ComboBox的选择会影响另一个ComboBox的显示内容。这在数据关联和筛选场景中尤为常见,例如省份...

    Extjs学习笔记(-):ComboBox联动

    在EXTJS这个强大的JavaScript框架中,ComboBox控件是一种常用的组件,它用于实现下拉选择框的功能。本篇学习笔记将深入探讨EXTJS中ComboBox的联动效果,即一个ComboBox的选择会触发另一个ComboBox的数据更新,以此来...

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

    在三级联动场景中,当用户选择一个省份时,ComboBox会动态加载并显示该省份下的城市列表;同样,当城市被选中后,会进一步加载并展示该城市内的区或县。这种联动效果可以提升用户体验,减少不必要的输入。 要实现这...

    ext和php实现的省级联动

    在`form.html`中,EXT可能已经创建了一个省份和城市的选择器,通过JavaScript事件监听和AJAX请求来更新城市列表。 `city.js`是EXT的JavaScript文件,它包含了联动逻辑的核心代码。在这个文件中,可能会定义一个或多...

    EXT 实现省份--城市--地区--级连

    在“EXT 实现省份--城市--地区--级连”这个主题中,我们将探讨EXT如何用来实现多级联动选择的功能,如省份、城市、地区之间的级联选择。 在Web应用中,用户可能需要选择一个地理位置,通常是从国家到省份,再到城市...

    Ext combo 下拉框级联

    例如,假设我们有三个级联的ComboBox:国家、省份和城市。首先,初始化国家的ComboBox,加载所有国家的数据。当用户选择一个国家后,根据所选国家的ID,通过Ajax请求获取对应的省份数据,然后加载到省份的ComboBox中...

    extJs ComboBox级联

    在上述代码中,我们创建了两个Store分别代表省份和城市,省份ComboBox的选择会触发`select`事件,更新城市ComboBox的查询参数并加载新的数据。注意,这里的示例代码简化了很多细节,实际项目中需要根据具体需求进行...

    漂亮的Extjs+struts2实现联动下拉

    联动下拉框是一种常见的交互设计,常见于需要根据前一个选择项动态加载后一个选择项的场景,例如省份和城市的选择。在ExtJS中,我们可以使用ComboBox组件来实现这个功能。ComboBox允许我们设置远程数据源,通过AJAX...

    ExtJs XML 省市县级联

    在事件监听中,例如在省选择框的`select`事件中,可以通过更新市选择框的`store`属性和`queryMode`来实现联动效果,让市选择框只显示与选定省相关的城市。 文件列表中的`Lecture_3_`可能表示这是一个系列教程的第三...

Global site tag (gtag.js) - Google Analytics