2009-07-19 55 views
0

我有一个页面上的多个UpdatePanel的,分别由比较昂贵的控制填补。在异步回发上,所有UpdatePanel都被初始化,但只有更新UpdatePanel被发送到客户端。现在我只想初始化实际需要更新的UpdatePanel。__EVENTTARGET设置为ScriptManager的ID

http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx表明解码__EVENTTARGET参数,找出导致回发的控制。 forums.asp.net/p/1385862/2947336.aspx建议解码对应于ScriptManager唯一ID的Request.Form值。两者似乎都很好。然而,我们的生产系统(IIS 6,.NET 3.5)经常报道其中__EVENTTARGET被设置为使用ScriptManager的唯一ID(MyScriptManager)的请求。在这些情况下,ScriptManager参数也会解码为MyScriptManager |的MyScriptManager代替UpdatePanelId | EventTargetId。已经观察到用于Firefox 3.0和3.5以及IE 6,7和8

然而,我无法重现它。有没有人有暗示是什么导致我们客户的浏览器回传这些值?

回答

0

的ASP.NET AJAX历史状态使这种请求。当客户端使用我们的Web应用程序时,我们使用ScriptManager上的EnableHistory =“true”来跟踪部分页面更新。如果客户端在浏览器中单击后退按钮,ScriptManager将使用自身作为EventTarget来启动异步请求。

0

您是否尝试设置的UpdatePanel的的UpdateMode为“有条件的”?我认为这会解决你的问题。

点击此处了解详情:http://codeclimber.net.nz/archive/2007/05/24/updatemode-default-value-for-the-updatepanel-is-always.aspx

+0

我已经使用UpdateMode.Conditional。但是,这似乎只有两个作用:只有更新的updatepanels的内容被发送到浏览器,并且受保护的属性UpdatePanel.RequiresUpdate在OnPreRender事件之前被初始化。但是,我想省略创建UpdatePanel的子控件,它发生在(OnInit/OnLoad)之前。因此,我尝试预测哪些更新面板后来决定需要更新。 – 2009-07-19 12:03:46