Ext 三级联动 及附值
/// <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 三级联动 及附值的更多相关文章
- js封装的三级联动菜单(使用时只需要一行js代码)
前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...
- 利用select实现年月日三级联动的日期选择效果
× 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...
- jQuery省市区三级联动插件
体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...
- jQuery - 全国省市县三级联动
最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- webForm(三)——三级联动
三级联动 首先附图一张,初步认识一下什么是三级联动: 注:选第一个后面两个变,选第二个,最后一个改变. 其次,做三级联动需要注意的方面:①DropD ...
- C#三级联动
1.运用ComboBox的控件建立效果,如右图: 2.建立三个表,第一个Province表: PID,PName;第二个为city表: CId,CName,PId;第三个为coun表:CounID,C ...
- JS省市区三级联动
不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...
- easyUI下拉列表三级联动
首先是先想好数据库的搭建,通过地区id,地区名称,上级地区id就可以实现,所有省市区的数据 例如: DAO层 service层 Servlet 页面 <!DOCTYPE html> < ...
随机推荐
- WWDC 2014 发布会 Keynote 视频下载 3.6G 1080P地址
我费尽九牛二虎之力,终于可以下载这个1080P高清的视频了,话说今天凌晨我是看的图文直播,现在终于有视频了,大家会不会很激动啊,好废话不多说,我把下载地址发给大家! 百度云:http://pan.ba ...
- java虚拟机之回收方法区
在java虚拟机中并没有规范规定需要对方法区即是新生代进行垃圾回收, 主要是这些区域的回收性价比极低, 一般在新生代中一般垃圾回收中可以达到70%到95%. 其中永久代中的垃圾回收主要回收的是两个 ...
- HTML5,jQuery,ajax基础面试
简要描述HTML5中的本地存储 答案: 很多时候我们会存储用户本地信息到电脑上,例如:比方说用户有一个填充了一半的长表格,然后突然网络连接断开了,这样用户希望你能存储这些信息到本地,当网络回复的时候, ...
- equals()和hashCode()隐式调用时的约定
package com.hash; import java.util.HashMap; public class Apple { private String color; public Apple( ...
- 什么是html技术
HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出.设计 HTML 语言的目的是为了能把存放在一台电脑 ...
- java常用IO流数据流小结
类名 常用方法 说明 输入流 InputStream int read(); 只能读字节流,虽然返回值是int,但只有低8位起作用. DataInputStream Type readType() ...
- 获取应用程序信息.h
//// 获取应用程序信息.h// IOS笔记// 一般会用来判断是否有新版本.是否需要强制更新 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中ta ...
- 【P1825】表达式整除
又自己写出来了好开心OvO 原题: 24点这个游戏好多人都玩过,就是给你4个数,添加相应的运算符,是否可以得到结果是24.小x在玩了很多遍这个游戏之后,想把这个游戏给改变一下.给你n个整数,在n个整数 ...
- 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏
1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...
- ayase系列
[冒个泡]技能视觉效果の自定义 by ayase [11-09 V2.4]任务数量转换属性点的lua脚本 [335]瞎倒腾的item.dbc生成工具..