0

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

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

我怎样才能做到这一点?

4

2 回答 2

1

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

这是一个配置示例:

Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose',
    store: myStore,
    queryMode: 'local',
    triggerAction: 'query',
    displayField: 'name',
    valueField: 'id'
});
于 2012-11-20T06:43:49.533 回答
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; })
于 2012-11-20T06:45:30.663 回答