Ext二级联动

项目需求:有两个下拉列表A和B。当你点击A列表里的一个值时,再点击B列表里面对应的值。也就是说,B列表的值是由A列表里的某个值决定的。B列表的值随A列表的值的不同而不同。由于使用了Ext作为表现层,所以不可避免的使用到了ComboBox。
解决思路:点击A列表,从后台加载一条JSON格式的数据,然后在A列表里显示。当点击A列表里的某个值时,触发一个C事件。C事件将重新设置B列表,同时B列表从后台请求一条JSON格式的数据,同时B列表又加载新的数据源。
好了,有了解决思路那就开始写代码吧。
1、首先,我们定义一个groupDS和一个groupCombo。
var groupDS = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'getGroupsByUser.action'
}),
reader : new Ext.data.JsonReader({
root : 'rows',
totalProperty : 'total',
id : 'groupId',
fields : ['groupId', 'groupName']
})
});
groupDS.load();

var groupCombo = new Ext.form.ComboBox({
// store: store,
store : groupDS,
fieldLabel : '分组',
displayField : 'groupName',
mode : 'local',
emptyText : '请选择一个分组',
valueField : 'groupId',
hiddenName : 'groupId',
anchor : '100%'

});

2、定义一个typeReader,一个typeDS和typeCombo。
var typeReader = new Ext.data.JsonReader({
id : 'typeId',
root : 'rows',
totalProperty : 'total',
fields : ['typeId', 'typeName', 'isIncome']
});

var typeDS = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'getTypesByUser.action'
}),
reader : typeReader
});

var typeCombo = new Ext.form.ComboBox({
fieldLabel : '类型',
store : typeDS,
emptyText : '请选择一个类型',
allowBlank : false,
loadingText : 'searching...',
displayField : 'typeName',
mode : 'local',
editable : true,
valueField : 'typeId',
hiddenName : 'typeId',
anchor : '100%',
triggerAction : 'all'
});

3、然后再定义一个选择事件。
groupCombo.on('select', function() {
typeCombo.reset();
typeDS.proxy = new Ext.data.HttpProxy({
url : 'getTypesByUser.action?groupId='
+ groupCombo.getValue()
});
typeDS.load();
});

好了,现在我们就完成了这个二级联动的小应用。同理,三级联动同样可以通过这种方式来实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值