实现EXTJS combobox多级联动菜单的关键点

思路大家肯定是知道的:

1 上级combo在select事件中清除下级的value

2 在每一级combo中的store,beforeload事件中去get上一级下拉菜单的选中值,以此来获取数据

网上代码很多,我就不重复了,只是很多兄弟没有注意下面这一点,导致菜单出现“灵异”现象。。。

3 combo中有一项重要的Propertie ,那就是lastQuery,用来存放上一次的数据,如果你没有把这个删掉,那么当你重新选择上一级菜单后,再选择下级时就会出现一直都在loading的状态,虽然数据是load到了,但mask却始终不消失

  也就是说,你需要在store的beforeload或combo的beforequery事件中手动去删除lastQuery

var combo = new Ext.form.field.ComboBox({
    ...
    queryMode: 'remote',
    listeners: {
        // delete the previous query in the beforequery event or set
        // combo.lastQuery = null (this will reload the store the next time it expands)
        beforequery: function(qe){
            delete qe.combo.lastQuery;
        }
    }
});

 补充一下,如果store里的数据来源是local,并非是通过ajax获取的,那不需要删掉lastQuery,直接给store的data重新赋值即可

 

转载于:https://www.cnblogs.com/zdkjob/archive/2012/05/07/2486896.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值