asp.net-sender._postBackSettings.panelID在非IE浏览器中返回null?
作者:互联网
我在一页中有2个更新面板.请求后,我想检查哪个更新面板已更新.我读过sender._postBackSettings.panelID应该适合这个:)
但是,每当我在非IE浏览器中收到回发信息时,panelID只会返回null吗?在IE中效果很好…
这是一个代码片段:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
function(sender, args) {
var postBackControls = sender._postBackSettings.panelID.split("|");
........
});
我有2个updatepanels,都具有条件updatemode:
<asp:UpdatePanel ID="updScheduleTemplate" runat="server"
UpdateMode="Conditional">
<ContentTemplate>
.........
和
<asp:UpdatePanel ID="updSpecialDays" runat="server"
onl oad="updSpecialDays_OnLoad" UpdateMode="Conditional">
<ContentTemplate>
..........
任何帮助将不胜感激,我愿意接受不涉及sender._postBackSettings.panelID的替代解决方案
提前致谢 :)
解决方法:
请尝试使用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是私有的,可能不打算供外部使用.
标签:updatepanel,asp-net,javascript 来源: https://codeday.me/bug/20191107/2002962.html