/// <reference path="../../ext.js" />
Ext.define('Myview.Region', {
extend: 'Ext.form.FieldContainer',
alias: 'widget.fieldRegioncontainer',
layout: "hbox",
initComponent: function () {
var me = this;

//要点,附值时要设置SelectCity,SelectArea,Province控件的值
//由于附值时,直接设置City和Area时,相应的store加载后会把设置的值清空,所以只能加载完 store后从SelectCity,SelectArea获取初使的值
//省store
me.provinceStore = Ext.create("Ext.data.Store", {
autoLoad: true,
autoSync: false,
fields: [
{ name: "RegionId", type: "int" },
{ name: "RegionName" }
],
proxy: {
type: 'ajax',
url: "../sys/AjaxRegionService.aspx?method=GetArea",
reader: {
type: "json",
root: "data"
}
}
});

//市store
me.cityStore = Ext.create("Ext.data.Store", {
autoSync: false,
fields: [
{ name: "RegionId", type: "int" },
{ name: "RegionName" }
],
proxy: {
type: 'ajax',
url: "../sys/AjaxRegionService.aspx?method=GetArea",
reader: {
type: "json",
root: "data"
}
},
listeners: {
load: function () {
var selectCity = Ext.getCmp('SelectCity').getValue();
if (selectCity != null && selectCity.length > 0) {
var index = me.cityStore.find("RegionId", parseInt(selectCity));
if (index >= 0) {
Ext.getCmp('City').setValue(parseInt(selectCity));
}
}
}
}
}
);

//县store
me.areaStore = Ext.create("Ext.data.Store", {
autoSync: false,
fields: [
{ name: "RegionId", type: "int" },
{ name: "RegionName" }
],
proxy: {
type: 'ajax',
url: "../sys/AjaxRegionService.aspx?method=GetArea",
reader: {
type: "json",
root: "data"
}
},
listeners: {
load: function () {
var selectCity = Ext.getCmp('SelectArea').getValue();

if (selectCity != null && selectCity.length > 0) {
var index = me.areaStore.find("RegionId", parseInt(selectCity));
if (index >= 0) {
Ext.getCmp('Area').setValue(parseInt(selectCity));
}
}
}
}
});

//省
me.province = Ext.create('Ext.form.ComboBox', {
allowBlank: false, flex: 1,
queryMode: "local", id:"Province",
name: "Province", valueField: "RegionId", displayField: "RegionName", store: me.provinceStore,
listeners: {
change: function (f, n, o) {
var p = this.store,
c = me.cityStore,
cb = this.up("form").getForm().findField("City"),
cb1 = this.up("form").getForm().findField("Area");
if (n && n != o) {
cb.setValue();
cb1.setValue();
c.getProxy().extraParams.parentid = n;
c.load();
}
}
}
});

//市
me.city = Ext.create('Ext.form.ComboBox', {
allowBlank: false, flex: 1,
queryMode: "local", id:'City',
name: "City", valueField: "RegionId", displayField: "RegionName", store: me.cityStore,
listeners: {
change: function (f, n, o) {
var p = this.store,
c = me.areaStore,
cb = this.up("form").getForm().findField("Area");
if (n && n != o) {
cb.setValue();
c.getProxy().extraParams.parentid = n;
c.load();
}
}
}
});

//县
me.area = Ext.create('Ext.form.ComboBox', {
allowBlank: false, flex: 1,
queryMode: "local", id:"Area",
name: "Area", valueField: "RegionId", displayField: "RegionName", store: me.areaStore,
});

me.items = [me.province, me.city, me.area, { xtype: 'hiddenfield', name: 'SelectCity', id: 'SelectCity' },
{ xtype: 'hiddenfield', name: 'SelectArea', id: 'SelectArea' }];
me.callParent(arguments);
}
});

Ext 三级联动 及附值的更多相关文章

  1. js封装的三级联动菜单(使用时只需要一行js代码)

    前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...

  2. 利用select实现年月日三级联动的日期选择效果

    × 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...

  3. jQuery省市区三级联动插件

    体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...

  4. jQuery - 全国省市县三级联动

    最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...

  5. 省市区三级联动 pickerView

    效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...

  6. webForm(三)——三级联动

    三级联动 首先附图一张,初步认识一下什么是三级联动:                           注:选第一个后面两个变,选第二个,最后一个改变. 其次,做三级联动需要注意的方面:①DropD ...

  7. C#三级联动

    1.运用ComboBox的控件建立效果,如右图: 2.建立三个表,第一个Province表: PID,PName;第二个为city表: CId,CName,PId;第三个为coun表:CounID,C ...

  8. JS省市区三级联动

    不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...

  9. easyUI下拉列表三级联动

    首先是先想好数据库的搭建,通过地区id,地区名称,上级地区id就可以实现,所有省市区的数据 例如: DAO层 service层 Servlet 页面 <!DOCTYPE html> < ...

随机推荐

  1. LPTHW 笨办法学python 33章

    32-33章节 将for-loop和while-loop循环的. 俩种句法就不说了.简单说下个人对于for和while的理解. 我觉得他learn python the hard way这里的写法是, ...

  2. 《剑指offer》面试题12:打印1到最大的n位数

    面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...

  3. python 获取html源代码里标签之间的文本用get_text()

    例: 输出<span class="w-txt">分享</span>中的文本"分享" contents = bsObj.find_all ...

  4. "错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法

    [详细报错如下]: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致 ...

  5. Zookeeper概论(对zookeeper的概论、原理、架构等的理解)

    Zookeeper概论(对zookeeper的概论.原理.架构等的理解) 一.概论 Zookeeper是一个分布式的.开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是h ...

  6. JDBC使用事务实例

    package qddx.JDBC; import java.sql.*; public class useTransaction { public static void main(String[] ...

  7. rails使用bootstrap3-wysiwyg可视化编辑器并实现自定义图片上传插入功能

    之前在rails开发中使用了ckeditor作为可视化编辑器,不过感觉ckeditor过于庞大,有很多不需要的功能,而且图片上传功能不好控制不同用户可以互相删除图片,感觉很不好.于是考虑更改可视化编辑 ...

  8. apache2.4设置外网访问问题

    Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化,以前是将 deny from all 全部改成 Allow from all 实现外网访问 ...

  9. 随机函数的代码(srand、rand)

    #include<stdio.h> int main() int counter; for(counter=0;counter<10;counter++) { srand(count ...

  10. C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)

           我们先来看一段运行时会抛出 InvalidOperationException 异常的代码段: private void btnThreadA_Click(object sender, ...