【发布时间】:2012-08-01 21:59:21
【问题描述】:
所以我想在更新面板更新后运行一些 javaScript 函数,所以我有:
function pageLoad() {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(panelLoaded);
}
function panelLoaded(sender, args) {
alert("foobar");
}
使用上面的代码,如果我更新一次面板,“foobar”会被提醒一次;如果我第二次更新面板,“foobar”会弹出两次;第三次触发面板更新,“foobar”弹出3次……第四次弹出4次,依此类推……
这是什么原因造成的??
谢谢~~~
【问题讨论】:
-
看起来你在 lprm.add_pageLoaded(panelLoaded)l 中一遍又一遍地添加它。它可能永远不会从 prm 中删除,并且每次您加载页面时,它都会添加一个新实例。尝试在那里设置断点并查看 prm 中有多少 panelLoaded 调用。 prm 是否有 remove_pageLoaded();选项?
-
谢谢,你没看错,是Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(panelLoaded);
-
很高兴为您提供帮助!祝你项目的其余部分好运。
标签: asp.net ajax vb.net updatepanel pagerequestmanager