之前加载商店

时间:2012-11-20 05:40:25

标签: extjs extjs4 extjs4.1

我有个窗口。在那个窗口,我有一个带商店的组合框。 我想屏蔽窗口,直到商店完成加载数据。这可以通过在加载前在store中写入this.setLoading(true)和在加载中写入this.setLoading(false)来实现。

但是当我使用上面的方法时,掩码在克服组合触发器后显示。这意味着点击触发器后商店正在加载。而不是我想在初始化窗口时加载商店

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

最简单的方法是将 queryMode 设置为'local',将 triggerAction 设置为 '查询'。这甚至不清楚商店过滤器了。但请注意,即使查询将中止, beforequery 事件仍会被触发。

这是一个配置示例:

Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose',
    store: myStore,
    queryMode: 'local',
    triggerAction: 'query',
    displayField: 'name',
    valueField: 'id'
});

答案 1 :(得分:0)

这是正常行为。当您单击触发器时 - 正在加载存储。 您可以通过处理 beforeload 存储事件来取消加载。 你可以做类似的事情:

var form = this.getForm();
var store = this.getStore();

store.load({ 
    callback: function(records, operation, success) {
        form.show();
    }
});

store.on('beforeload', function() {return false; })