コンボボックスの準備ができたときに関数を実行する方法はありますか?
Ext.OnReadyの最後にコンボの準備ができていないように見えることがあり、その値をajax呼び出しで埋めるために関数を呼び出すと、多くの問題が発生するため、これに問題があります。
代わりにこれを行うための適切な方法を探しています
setTimeout(function(){myDataFiller();}、300);
コンボボックスの準備ができたときに関数を実行する方法はありますか?
Ext.OnReadyの最後にコンボの準備ができていないように見えることがあり、その値をajax呼び出しで埋めるために関数を呼び出すと、多くの問題が発生するため、これに問題があります。
代わりにこれを行うための適切な方法を探しています
setTimeout(function(){myDataFiller();}、300);
これを試して:
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
。つまり、関数は1回だけ実行されるため、コンボボックスが再レンダリングされた場合に誤って値をリセットしてしまうことはありません。
CPUに基づくレンダリングの問題だったようです。
Intel Core 2 Duoでテストを行ったところ、エラーを再現できました。その後、i7 CPUを試してみましたが、すべて問題ありませんでした。