2012-11-20 67 views
0

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

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

我该如何实现这一目标?

回答

1

最简单的方法是设置queryMode'本地'triggerAction'查询'。这甚至不会再清除商店过滤器。但请注意,即使查询将中止,事件仍会被解雇。

这里一个配置实例:

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

这是正常的行为。当你点击触发器时 - 商店正在加载。 您可以通过处理取消加载存储事件来取消加载。 你可以这样做:

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

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

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

这使得typeAhead(如果有的话)是不可能的 – sra