上网找了好几个 都不能用 可能是因为我对ExtJs不太熟悉
就是有两个下拉列表 一个是国家 一个是省份 这样 我的两个下拉列表结构如下:
//这里查找的是所有国家
var xxbmCountryProxy = new Ext.data.HttpProxy({
url : path + "/XxbmdSQuery.do?StoreFlag=14"
});//这个是Json
var xxbmReader = new Ext.data.JsonReader(
{totalProperty : 'totalProperty',root : 'root'},
[ {name : 'xxjlxh'},
{name : 'xxdm'},
{name : 'xxdmid'},
{name : 'xxdmkeepType'}
]);//数据源
var xxbmCountryInfoStore = new Ext.data.Store({
proxy : xxbmCountryProxy,
reader : xxbmReader
});//这是表单
var addQykhForm = new Ext.form.FormPanel({
id:'addQykhForm',
frame: true,
url: path + "/qykhDSQuery.do", //表单提交的地方
items:[{
//这是第一个下拉列表
name: 'addregCountry',
xtype: 'combo',
autoLoad : true, //不知道这是干麻用的
editable:false, //不可以手动输入
triggerAction : 'all', //这个也不知道是干麻用的
fieldLabel: '注册所在国家',
emptyText:'请输入注册所在国家',
mode: 'local', //数据在本地
store: xxbmCountryInfoStore, //本地数据源 这个数据源在上面已给出
displayField: 'xxdmkeepType',
valueField: 'xxdmid',
listeners : { //这是第一个监听 监听键盘事件
specialkey : function(f, e) {
if (e.getKey() == e.ENTER || e.getKey() == 40 ) {
addQykhForm.getForm().findField('addregContan').focus(true,true);
}else if(e.getKey() == 38){
addQykhForm.getForm().findField('addemployeeNum').focus(true, true);
}
},
select : function(combo, record,index){
//这里准备写联动方法
//我是想 第二个下拉列表获得数据源 和第一个下拉列表获得数据源的方式差不多
//就类似这样
//var xxbmCountryInfoStore = new Ext.data.Store({
// proxy : xxbmCountryProxy,
// reader : xxbmReader
//});
}
}
},{
//这是第二个下拉列表
name: 'addregContan',
xtype: 'combo',
autoLoad : true,
editable: false,
triggerAction : 'all',
fieldLabel: '注册所在行政区',
emptyText:'请输入注册所在行政区',
mode: 'local',
store: xxbmContanInfoStore, //数据源 这里还没给出 因为还不知道应该用什么
displayField: 'xxdmkeepType', //这是在Json里获得的
valueField: 'xxdmid', //这也是在Json里获得的 都可以根据需要改
}]
});
就是有两个下拉列表 一个是国家 一个是省份 这样 我的两个下拉列表结构如下:
//这里查找的是所有国家
var xxbmCountryProxy = new Ext.data.HttpProxy({
url : path + "/XxbmdSQuery.do?StoreFlag=14"
});//这个是Json
var xxbmReader = new Ext.data.JsonReader(
{totalProperty : 'totalProperty',root : 'root'},
[ {name : 'xxjlxh'},
{name : 'xxdm'},
{name : 'xxdmid'},
{name : 'xxdmkeepType'}
]);//数据源
var xxbmCountryInfoStore = new Ext.data.Store({
proxy : xxbmCountryProxy,
reader : xxbmReader
});//这是表单
var addQykhForm = new Ext.form.FormPanel({
id:'addQykhForm',
frame: true,
url: path + "/qykhDSQuery.do", //表单提交的地方
items:[{
//这是第一个下拉列表
name: 'addregCountry',
xtype: 'combo',
autoLoad : true, //不知道这是干麻用的
editable:false, //不可以手动输入
triggerAction : 'all', //这个也不知道是干麻用的
fieldLabel: '注册所在国家',
emptyText:'请输入注册所在国家',
mode: 'local', //数据在本地
store: xxbmCountryInfoStore, //本地数据源 这个数据源在上面已给出
displayField: 'xxdmkeepType',
valueField: 'xxdmid',
listeners : { //这是第一个监听 监听键盘事件
specialkey : function(f, e) {
if (e.getKey() == e.ENTER || e.getKey() == 40 ) {
addQykhForm.getForm().findField('addregContan').focus(true,true);
}else if(e.getKey() == 38){
addQykhForm.getForm().findField('addemployeeNum').focus(true, true);
}
},
select : function(combo, record,index){
//这里准备写联动方法
//我是想 第二个下拉列表获得数据源 和第一个下拉列表获得数据源的方式差不多
//就类似这样
//var xxbmCountryInfoStore = new Ext.data.Store({
// proxy : xxbmCountryProxy,
// reader : xxbmReader
//});
}
}
},{
//这是第二个下拉列表
name: 'addregContan',
xtype: 'combo',
autoLoad : true,
editable: false,
triggerAction : 'all',
fieldLabel: '注册所在行政区',
emptyText:'请输入注册所在行政区',
mode: 'local',
store: xxbmContanInfoStore, //数据源 这里还没给出 因为还不知道应该用什么
displayField: 'xxdmkeepType', //这是在Json里获得的
valueField: 'xxdmid', //这也是在Json里获得的 都可以根据需要改
}]
});
代码一点都不难读..
给我一个能用的联动代码也可以 ExtJs 的..
恩 思路是有的 就是不知道怎么用
我用 Ext 的时间不长
你好 我不太懂的ExtJs
不知道怎么用ExtJs做下拉树
上网看了一下 也没太懂
有例子吗? 加一点注释的..
2、然后给国家下拉菜单一个监听事件让他每次选择不同的国家就根据选择的国家ID去加载省份数据,如果还有城市那么久根据选择的省份ID去加载城市数据
其实很简单的LZ你行的。
例子很多的,搜搜就知道了
listeners : {
select : function(combo, record,index){
//这是数据源 可以直接用它的 proxy 属性吗?
xxbmCountryInfoStore.proxy =
new Ext.data.HttpProxy({url : path + "/XxbmdSQuery.do?StoreFlag="+combo.value});
xxbmCountryInfoStore.load();
}
}
我已经解决了 呵呵 去我博客看吧..
http://blog.sina.com.cn/s/blog_6a98783b0100qkit.html