zoukankan      html  css  js  c++  java
  • 实现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重新赋值即可

  • 相关阅读:
    day 80 视图家族
    day 79 drf 多表关联操作
    day 78 drf 序列化
    day 77 drf中请求、渲染、解析、异常、响应模块的二次封装
    day 76 drf
    python小知识
    请求 渲染 解析 异常 响应模块
    子组件
    vue基础(2)
    vue基础
  • 原文地址:https://www.cnblogs.com/zdkjob/p/2486896.html
Copyright © 2011-2022 走看看