在CF9(ext js 3.1)中,我有一个绑定网格,由ajax调用填充,基于选择框的值。 select的onChange事件触发js函数。在这个函数中,我试图在网格刷新事件上设置一个触发器,以执行其他一些代码。 我已经尝试过后续,重新配置,加载,没有任何作用:不会出现错误,但函数不会被触发。 如果我将事件更改为网格刷新后发生的事情,例如grid.addEvents('click'),它可以正常工作。我错过了什么?
function myFunc(val) {
// ... some other code ...
ColdFusion.Grid.refresh('myGrid',true);
var grid = ColdFusion.Grid.getGridObject('myGrid');
grid.addEvents('reconfigure');
grid.on('reconfigure',function(){
alert("Grid changed!");
});
}
答案 0 :(得分:0)
看起来像ColdFusion.Grid.refresh(' myGrid',true)开始异步执行,函数的其余部分继续运行,它可以在grid.refresh完成之前执行。
我将触发的代码移动到另一个函数并添加了一个延迟,并不完全满意,因为ajax调用可能会延迟一秒钟。如果有人有更好的想法,我会很高兴找到它。
function myFunc(val) {
// ... some other code ...
ColdFusion.Grid.refresh('myGrid',true);
myVar = setInterval(myOtherFunc,1000);
}
function myOtherFunc() {
var grid = ColdFusion.Grid.getGridObject('myGrid');
// add whatever code is needed
}