所以我想在我的 updatepanel 更新后运行一些 javaScript 函数,所以我有:
function pageLoad() {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(panelLoaded);
}
function panelLoaded(sender, args) {
alert("foobar");
}
使用上面的代码,如果我更新面板一次,“foobar”将被提醒一次;如果我第二次更新面板,“foobar”会弹出两次;第三次触发面板更新时,“foobar”弹出了三次……第四次弹出了 4 次,依此类推……
这是什么原因造成的??
谢谢~~~
最佳答案
这是因为 pageLoad 也在更新面板回发期间执行。有一个简单的解决方案:
function pageLoad(sender, eventArgs) {
// If this is being executed by ajax
if (eventArgs) {
// And this is only a partial load
if (eventArgs.get_isPartialLoad()) {
// Don't perform any further processing
return;
}
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(panelLoaded);
}
关于asp.net - 为什么我的函数在 UpdatePanel 加载后多次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802736/