0

无论如何,只有在组合框准备好时才执行功能?

我遇到了麻烦,因为在 Ext.OnReady 结束时,有时组合似乎还没有准备好,并且调用一个函数来用 ajax 调用填充它的值会导致很多麻烦。

我正在寻找一种正确的方法来做到这一点,而不是

setTimeout(function(){myDataFiller();},300);
4

2 回答 2

0

尝试这个:

var combo = new Ext.form.field.ComboBox({
    /* config settings, blah blah blah */
    listeners: {
        afterrender: {
            single: true,
            fn: function(combobox){
                Ext.Ajax.request({
                    /* request settings */
                    success: function(data){
                        var value;
                        /* process your data response */
                        combobox.setValue(value);
                    }
                });
            }
        }
    }
});

或者,如果您已经从 Ajax 请求中获得了值,则可以直接在afterrender函数中设置该值。注意single: true上面的使用。这意味着该函数只会执行一次,因此如果某些事情导致您的组合框重新呈现,您最终不会错误地重置该值。

于 2012-09-07T00:03:58.227 回答
0

看来这是基于cpu的渲染问题。

我在 Intel Core 2 Duo 上做了一些测试,我可以重现错误。之后我尝试了i7 cpu,一切都很好。

于 2012-09-10T06:27:13.613 回答