在 CF9 (ext js 3.1) 中,我有一个绑定(bind)网格,由 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!");
});
}
最佳答案
看起来 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
}
关于javascript - 如何使用ajax网格中的数据刷新作为触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615426/