我在一个页面中有2个更新面板。请求后,我想检查哪些更新面板已更新。我读过sender._postBackSettings.panelID
应该对此有好处:)
但是,每当我在非IE浏览器中获得回发时,panelID只返回null?它在IE中工作得非常好......
这是一个codesnippet:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
function(sender, args) {
var postBackControls = sender._postBackSettings.panelID.split("|");
........
});
我有2个updatepanel,都有条件更新模式:
<asp:UpdatePanel ID="updScheduleTemplate" runat="server"
UpdateMode="Conditional">
<ContentTemplate>
.........
和
<asp:UpdatePanel ID="updSpecialDays" runat="server"
OnLoad="updSpecialDays_OnLoad" UpdateMode="Conditional">
<ContentTemplate>
..........
任何帮助都将受到高度赞赏,我愿意接受不涉及sender._postBackSettings.panelID
的替代解决方案
提前致谢:)
答案 0 :(得分:4)
尝试 add_pageLoaded :
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function pageLoaded(sender, args)
{
var panels = args.get_panelsUpdated();
if (panels.length > 0)
{
for (i=0; i < panels.length; i++) {
var panelID =panels[i];
}
}
}
我知道这听起来不会起作用但是根据MSDN的以下文章,有充分的理由相信它也会捕获updatepanel完成事件。 http://msdn.microsoft.com/en-us/magazine/cc163413.aspx
_postBackSettings是私有的,可能不适合外部使用。