所以我想在更新updatepanel之后运行一些javaScript函数,所以我有:
function pageLoad() {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(panelLoaded);
}
function panelLoaded(sender, args) {
alert("foobar");
}
使用上面的代码,如果我一次更新面板,“foobar”将被警告一次;如果我第二次更新面板,“foobar”将弹出两次。第三次触发面板更新时,“foobar”弹出了3次...第4次弹出了4次,依此类推...。
是什么原因造成的??
谢谢~~~
最佳答案
这是因为pageLoad也在updatepanel回发期间执行。有一个简单的解决方案:
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);
}