将侦听器OnReady添加到extjs ComboBox

时间:2012-09-06 08:58:52

标签: javascript ajax combobox extjs4.1 onready

无论如何在组合框准备就绪时执行功能吗?

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

我正在寻找一种合适的方法来代替

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

1 个答案:

答案 0 :(得分: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的使用。这意味着该函数只会执行一次,因此如果某些因素导致你的组合框重新渲染,你就不会错误地重置该值。