问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

extjs三级联动的问题?

发布网友 发布时间:2022-04-30 01:40

我来回答

1个回答

热心网友 时间:2022-04-24 20:52

4.4.7. 露一小手,组合上面所知,省市县*级联。哈哈~
这是一个相当典型的案例,以前经常用select做,现在用comboBox实现的效果又会如何呢?

4.4.7.1. 先做一个模拟的,所有数据都在本地

思路是这样的,我们先准备好省市县的数据,都是二维数组,级联的数据就从它们之中选择。
var dataProvince = [
['河北','河北'],
['内蒙古','内蒙古']
];
var dataCityHebei = [
['唐山','唐山'],
['秦皇岛','秦皇岛'],
['承德','承德'],
['张家口','张家口']
];
var dataCityNeimenggu = [
['呼和浩特','呼和浩特'],
['包头','包头']
];
// 其中:遵化、迁安为县级市。
var dataCountyTangshan = [
['路南区','路南区'],
['路北区','路北区'],
['开平区','开平区'],
['古冶区','古冶区'],
['丰润区','丰润区'],
['丰南区','丰南区'],
['玉田','玉田'],
['遵化','遵化'],
['迁西','迁西'],
['迁安','迁安'],
['滦县','滦县'],
['滦南','滦南'],
['乐亭','乐亭'],
['唐海','唐海']
];
var dataCountyUnknow = [
['不知道','不知道']
];

然后我们要三个数据转换器,对应着省市县的三个Ext.data.SimpleData,原始数据经过它们的处理才可以交给comboBox,显示出我们期望的效果来。
var storeProvince = new Ext.data.SimpleStore({
fields: ['value', 'text'],
data: dataProvince
});
var storeCity = new Ext.data.SimpleStore({
fields: ['value', 'text'],
data: []
});
var storeCounty = new Ext.data.SimpleStore({
fields: ['value', 'text'],
data: []
});

注意到没有?只有storeProvince对应上了dataProvince,其他两个store里都用的空数组[],这是因为没有选择省级地区之前,市级地区和县级地区是不应该有数据的。实际上你也不知道应该放什么,啥都没选呢。

现在可以制作三个comboBox了。这里我们提一句,每个combobox都配置成readOnly:true,这样省得用户输入无效信息,让triggerAction:all避免它去做autoComplete的判断。
var comboProvince = new Ext.form.ComboBox({
store: storeProvince,
emptyText: '请选择',
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
readOnly: true
});
var comboCity = new Ext.form.ComboBox({
store: storeCity,
emptyText: '请选择',
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
readOnly: true
});
var comboCounty = new Ext.form.ComboBox({
store: storeCounty,
emptyText: '请选择',
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
readOnly: true
});
comboProvince.applyTo('comboProvince');
comboCity.applyTo('comboCity');
comboCounty.applyTo('comboCounty');

在html里对应放上三个input,现在显示的部分就基本完成了。
<input id="comboProvince" type="text"/>
<input id="comboCity" type="text"/>
<input id="comboCounty" type="text"/>

现在我们来看关键部位,让三个comboBox关联起来,选择上级的时候,下级显示的信息要发生对应变化才可以。这就要用到我们上边说到的on('select')了。
comboProvince.on('select', function(comboBox){
var province = comboBox.getValue();
if (province == '河北') {
storeCity.loadData(dataCityHebei);
} else if (province == '内蒙古') {
storeCity.loadData(dataCityNeimenggu);
}
});
comboCity.on('select', function(comboBox){
var city = comboBox.getValue();
if (city == '唐山') {
storeCounty.loadData(dataCountyTangshan);
} else {
storeCounty.loadData(dataCountyUnknow);
}
});
comboCounty.on('select', function(comboBox){
alert(comboProvince.getValue() + '-' + comboCity.getValue() + '-' + comboCounty.getValue());
});

像这样,给三个comboBox都设置上on('select')的事件监听,在选择省的时候,判断选择的是哪一项,如果是河北,就在市级comboBox里显示河北省的信息。

注意我们用到的storeCity.loadData(dataCityHebei);,这可以改变store内部的数据,store的数据改变了,对应的comboBox也就发生了变化。省市都是如此操作,最后在选择县的时候用alert弹出选择的信息。

如此这般,这般如此,我们的省市县*级联就大功告成咯。庆贺下追问我是说的我的那个页面的那种形式应该如何实现*联动啊,这个列子我也从网上看到了,求解?

我是说的我的那个页面的那种形式应该如何实现*联动啊,所有数据都是动态的啊,这个列子我也从网上看到了,求解?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
乾隆小时候的书童是谁 下面对句式判断有误的一项是( ) A.当立者乃公子扶苏(判断句) ...为折线,把 折起,使平面 平面 ,连接 (1)求证: ;(2)求二面角 图中由线段OA、AB组成的折线表示的是小明步行所走的路程和时间之间的关... 动态图像粒度粒形分析仪 oppor9splus视频通话怎么开美颜 微信视频聊天怎么开美颜oppor9 谁家出售二手胶囊填充机NJP1200 NJP-1200A硬胶囊填充机仪器特点简介 NJP-1200A硬胶囊填充机仪器参数 好听的京剧曲牌 关于爱国主义书籍的读后感,300—400字左右,别多了!!! extjs中的Ext.Viewport()组件使用时,在body标签里面为什么不能写其他的... 什么是曲牌名 爱国的读后感720字 Extjs GridPanel构造器参数意思 京剧曲牌 关于extjs方法调用的问题 我国古代戏曲曲牌名 extjs xtype有哪些样式 球爱国人士的读后感(500字 )急急急 !今天就要 ...一个center部分,然后将它们放在viewport中, 京剧里常听到的有哪些曲牌名?这些曲牌名有哪些经典曲目??谢谢 ExtJS中的Ext.panel.Panel和Ext.panel有什么区别,有很多名称相似的组件... 跪求!!关于爱国的读后感400~500字 20悬赏 戏曲音乐中的曲牌是什么? 跪求一篇关于爱国人士的读后感,四百多字左右就ok~~ 空调用不了了,合肥美的空调维修电话号码多少? OPPO账号数据会清除吗? 从风水上讲客厅正中间有横梁好不好 曲牌体制的戏曲剧种有哪些? 玛氏旗下著名猫粮品牌叫什么? extjs里的treepanel的用法 爱国人士500字范文 和心得体会200字 将许多曲牌连缀起来讲唱故事的音乐形式称为 有关爱国人士的故事作文300字 戏曲曲牌的摘段与换头是什么意思? 如何在extjs4中让一个gridpanel填充满它的父panel 描写爱国人士的文章的读后感 哪些是粤剧曲牌名? 在extjs的panel中可以包含一个gridpanel吗?panel与gridpanel的区别是什么? 戏曲音乐中曲牌连缀体与板腔体有什么不同? 如何在div中添加extjs的panel 有关爱国人士的作文 如何用Extjs进行下面的布局,整体是个panel 内部3个子panel 并且还可以拆... 0.1.2.3.4.5.6.7.8.9这几个数字能组成多少组不同的6位数字 你好,从0到9组成六位数的密码有哪些_百度问一问 有哪些爱国人士读后感 在Ext中FormPanel与GridPanel有什么区别? 有关爱国作文的读后感 京剧曲谱柳摇金曲牌是用在那些地方