Extjs二级联动

Extjs combox根据省查询城市

实现效果如上图所示,

store层代码:

 Ext.define("ExtApp.store.TeacherProvince",{
extend:"Ext.data.Store",
fields:['provinceCode','provinceName'],
autoLoad:true,
proxy:{
type:"ajax",
url : 'getProvinces.action',
reader:{
type:"json",
root:"rows",
totalProperty:"results"
}
}
});

view层:

 {
  xtype : 'combo',
fieldLabel:'省份',
name:'provinceName',
margin:'0 3 0 0',
flex:1,
id : 'cobTeacherProvince',
store : 'TeacherProvince',
valueField : 'provinceCode',
displayField : 'provinceName',
editable : false,
emptyText : '请先选省',
queryMode : 'local'
},{
xtype : 'combo',
margin:'0 0 0 3',
flex:1,
id : 'cobTeacherCity',
store : Ext.create('Ext.data.Store', {
  fields : ['cityCode','cityName'],
autoSync : true,
proxy : {
  type : 'ajax',
url : 'getCitys',
reader : {
type : 'json',
root:"rows",
totalProperty:"results"
}
}
}),
valueField : 'cityCode',
displayField : 'cityName',
editable : false,
emptyText : '请选对应的城市',
queryMode : 'local',
fieldLabel : '城市',
name:'cityName'
}

  controller层:

 StudentDetailsCity:function(combo, record){
var StudentDetailsCity= Ext.getCmp('cobStudentDetailsCity')
var StudentDetailsCityStore = StudentDetailsCity.getStore();
StudentDetailsCity.reset();
StudentDetailsCityStore.load({
params:{'provinceName':combo.getValue()==null?"":combo.getValue()},
callback:function(records, operation, success){
if(records.length==1){
StudentDetailsCity.setValue(records[0]);
}
else{
StudentDetailsCity.setValue("选择市");
}
}
});
},

记录的问题:

 选择省之后,把城市Store换掉,然后根据callback函数,根据返回城市的个数显示:

  1,如果只有一个城市,就显示一个城市

    2,如果有多个城市,就显示选择城市

记住:store的callback函数和params

完善1:

通过组件的setValue方法

完善2:如何不改变省,只改变城市?

问题:这里改变城市为啥不能用select?

原因:因为city的store为空,只有在改变省份的时候,才调用getcitys.action ,将省名ProvinceName传递过去

所以不改变省就获取不到城市的store,所以要在citycombox添加一个监听事件,点击了就将store展开

select是选择事件,比如说好多省,选择之后触发城市store reset事件

expand是将组件展开组件事件,目的是将组件展开

 //修改城市
StudentDetailsChangeCity:function(combo, record){
var provinceName=Ext.getCmp('cobStudentDetailsProvince').getValue();
var StudentDetailsCity= Ext.getCmp('cobStudentDetailsCity')
var StudentDetailsCityStore = StudentDetailsCity.getStore();
StudentDetailsCity.reset();
StudentDetailsCityStore.load({
params:{'provinceName':provinceName==null?"":provinceName}
});
},

或者在load整个表格数据的时候,就将city的store加载,这样就不用添加对city combo的监听了

 loadData:function(form,opts){
form.load({
url:'queryInf',
success:function(){
var TeacherCityStore = Ext.getCmp('cobTeacherCity').getStore();
var provinceName=Ext.getCmp('cobTeacherProvince').getValue();
TeacherCityStore.load({
params:{'provinceName':provinceName==null?"":provinceName}
});
}
});
}

Extjs二级联动combo省城市的更多相关文章

  1. 通过Ajax异步提交的方法实现从数据库获取省份和城市信息实现二级联动(xml方法)

    之前有写过是从JavaScript数组里获取省市信息来实现二级联动,但是似乎有很多需求是要从数据库里获取信息,所以就需要根据异步提交,局部刷新的思想来实现来提高用户交互问题 第一种方法是xml方法 1 ...

  2. asp.net mvc jQuery 城市二级联动

    页面效果图: 数据库表结构: 首先在数据库中创建省级.城市的表,我的表如下:我用了一张表放下了省级.城市的数据,用level划分省份和城市,parentId表示该城市所在省份的id 主要文件有:ind ...

  3. Ajax实现的城市二级联动二

    上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option> ...

  4. Ajax实现的城市二级联动一

    前一篇是把省份和城市都写在JS里,这里把城市放在PHP里,通过发送Ajax请求城市数据渲染到页面. 1.html <select id="province"> < ...

  5. jq简单城市二级联动实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. js实现城市二级联动列表

    这个是一个同事写的,我看着有用,就cv下来了. 程序功能主要逻辑是: 1.当一级标签市显示默认状态 '-请选择-'时,二级标签要隐藏 2.一级标签选中城市时,二级标签显示在页面,并列出响应市区 3.当 ...

  7. 份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】

    package loaderman.provincecity; import java.io.IOException; import java.util.LinkedHashSet; import j ...

  8. asp.net 使用DroDownList来实现二级联动

    今天做新闻发布系统的时候,用到了二级联动,我把使用方法记录下来,以便日后查阅以及帮助新手朋友们.下面是效果图: 下面来讲解一下实现的方法: 1.在.aspx页面中,拖入两个DroDownList控件. ...

  9. 利用JavaScript来实现省份—市县的二级联动

    所谓省-市二级联动是指当选择省份下拉选择框时,市县的下拉框会根据选择的省市而有相应的市县加载出来,如下图所示选择"上海市",城市的下拉选择框只会出现上海的市县: 这种二级联动非常常 ...

随机推荐

  1. HTTP要点概述:七,编码,压缩传输,分块传输

    一,编码: HTTP 在传输数据时可以按照数据原貌直接传输,但也可以在传输过程中通过编码提升传输速率.通过在传输时编码,能有效地处理大量的访问请求.但是,编码的操作需要计算机来完成,因此会消耗更多的 ...

  2. Oracle存储过程(增、删、改)写法、oracle执行存储过程

    Oracle存储过程(增.删.改)写法 发布时间: 2010-3-24 11:07    作者: ZHF    来源: 51Testing软件测试网采编 字体:  小  中  大  | 上一篇 下一篇 ...

  3. codeforces 963B Destruction of a Tree

    B. Destruction of a Tree time limit per test 1 second memory limit per test 256 megabytes input stan ...

  4. 【POJ 1364】 King

    [题目链接] 点击打开链接 [算法] 差分约束系统 [代码] #include <algorithm> #include <bitset> #include <cctyp ...

  5. COCI2012 TOY

    有m种物品,n个箱子之中装着若干物品.问取出一些箱子后,所有m种物品都被选出的方案数. m<=20,n<=106 这道题很妙啊 深刻地利用了容斥 看到n=20,我们就想到了状压和容斥. 怎 ...

  6. 05_锅炉压力案例_java实现

    最开始是有机顶盒,后来电视里面都带着一个安卓的设备.现在空调.冰箱.洗衣机都跃跃欲试地想把这个东西加上.海尔出了一款智能冰箱,就是在冰箱门上嵌了一个12寸的屏幕.这个屏幕实际上就是一个安卓的平板似的. ...

  7. HTTP请求 响应状态码

      1.请求响应方式       get是从服务器上获取数据,post是向服务器传送数据.get 数据在地址栏中明文的形式发送, post则不是,传递的数据比get多 据RFC2616标准(现行的HT ...

  8. 微信小程序资源

    1.http://blog.csdn.net/wyx100/article/details/52667518 2.http://mp.weixin.qq.com/s?__biz=MzIyMDM2Mjg ...

  9. ViewPager(3)用viewpager实现tabhost

    1.示例 2.代码 2.1 TabViewPagerMain.java import android.graphics.drawable.Drawable; import android.os.Bun ...

  10. Android 性能优化(4)Optimizing Layout Hierarchies:用Hierarchy Viewer和Layoutopt优化布局

    Optimizing Layout Hierarchies This lesson teaches you to Inspect Your Layout Revise Your Layout Use ...