extjs combo 级联 loading提示

来源:互联网 发布:js 打印数组 编辑:程序博客网 时间:2024/05/19 03:29

据我的了解,extjs里面的combobox只有在第一次加载数据的时候才呈现loading mask,但有一种情况combobox不止一次进行数据加载,这就是级联。说道级联,很多人都会第一时间想到省、市、县三者之间的级联,哈、其实我第一次接触级联也是地区上的级联。

跑题了,直入正题吧。这里我的例子不胜地区级联,而是其他业务。业务需求如下,有表A/B/C/D,D是C的集合,A是B的筛选条件,而B则是C的筛选条件,因此在D表记录的新增功能内就可以运用到级联。直接贴关键代码

1)由于A是B的筛选条件,则可以在B的combobox上面加上以下两句代码。

triggerAction: 'all',queryMode: 'local',
这样则不会出现点击下拉框,combobox自动加载数据了。什么时候加载数据呢?当然是选择A中的其中一条数据的时候啦,所以我们可以在A中的combobox的select事件上面调用B中的combobox的store.load()方法。

listeners: {    select: function(combo, record, index){        try {            var bCombo = combo.up('form').items.items[3];            bCombo.setDisabled(false);            var params = {};            params.fromwhere = 'dAdd';            bCombo.store.load({params: params});        } catch (ex) {            Ext.MessageBox.alert("Error", "Fail to load data.");        }    }}

2)由于extjs上的combobox控件只会在第一次加载数据的时候出现遮罩层,即loading mask。因此需要监听combobox的数据加载前和数据加载完成的事件,这里我从官方api上面发现,store里面有两个方法符合。

listeners: {                            beforeload: function(store, operation, eOpts) {        console.info("Before load....");                                    Ext.MessageBox.wait('Loading...');    },    load: function(store, records, successful, eOpts) {        console.info("Data loaded........");        console.info(successful);        Ext.MessageBox.updateProgress(1);        Ext.MessageBox.hide();        }}
备注:这段代码是写在B的combobox下面的store里面

多查文档,多请教google大神。


0 0
原创粉丝点击