zoukankan      html  css  js  c++  java
  • EXTJS7 combobox 下拉加载数据源码

    Trigger.js

    onClick: function(e) {
    	var me = this,
    	    handler = !me.getDisabled() && me.getHandler(),
    	    field = me.getField(),
    	    focusEl;
    	...
    	// handler = 'onExpandTap' 触发combobox展开按钮点击处理函数
    	    if (handler) {
    	        Ext.callback(handler, me.getScope(), [field, me, e], null, field);
    	    }
    	}
    },
    

    Combobox.js

    // 更新store
    updateStore: function(store, oldStore) {
        var me = this,
        	// 获取combobox queryMode 默认值是remote
            isRemote = me.getQueryMode() === 'remote',
        ...
        // 如果是远端查询模式,则设置store remoteFilter=true,此项将影响store应用过滤时是否重新加载数据
        if (isRemote) {
            store.setRemoteFilter(true);
    	...
    },
    // 展开按钮点击处理函数
    onExpandTap: function() {
        var me = this,
        ...
        if (me.expanded) {
            ...
        }
        else if (!me.getReadOnly() && !me.getDisabled()) {
        	// 根据commbobox配置项triggerAction过滤数据,默认为all
            if (triggerAction === 'all') {
                me.doFilter({
                    query: me.getAllQuery(),
                    force: true // overrides the minChars test
                });
            }
            else if (triggerAction === 'last') {
                me.doFilter({
                    query: me.lastQuery.query,
                    force: true // overrides the minChars test
                });
            }
            else {
                me.doFilter({
                    query: me.inputElement.dom.value
                });
            }
        }
    }
    // 过滤下拉框数据
    doFilter: function(query) {
    	...
    	// 发送过滤器集合endupdate事件,触发store执行数据过滤
    	filters.endUpdate();
    	...        
    },
    

    AbstractStore.js

    onFilterEndUpdate: function() {
    	...
    	// 如果是远端过滤,则需要重新加载数据
    	if (me.getRemoteFilter()) {
    	   ...
    	    if (!suppressNext) {
    	    	// 加载数据
    	        me.load();
    	    }
    	}
    	...
    }
    
  • 相关阅读:
    redis如何实现数据同步
    mysql调优学习笔记
    介绍一个好用的dao层与mybatis互跳的idea插件MyBatisCodeHelperPro
    springboot执行流程
    zookeeper
    (原创) cocos2dx使用Curl连接网络(客户端)
    (转) Eclipse连接MySQL数据库(傻瓜篇)
    (原创)cocos2dx使用jsoncpp的正确姿势
    Java web开发(17)SpirngMVC 详解
    PLC 程序和仿真
  • 原文地址:https://www.cnblogs.com/luguojun/p/14294774.html
Copyright © 2011-2022 走看看