2009-07-19 46 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