2010-11-07 70 views
0

我對asp.net應用程序中發生的事情有些困惑。通過Ajax更新WebControl rendercontents

頁面上有一個控件,它每5秒鐘執行一次ajax請求(使用UpdatePanel和Trigger)來循環顯示一些圖像。

我創建了一個從Twitter獲取信息的WebControl,儘管沒有成爲UpdatePanel的一部分,但RenderContents似乎在每個AJAX調用中都被調用。

這是正常行爲,還是我錯過了什麼?有沒有辦法解決它?

回答

1

無需任何代碼就很難提供一個確切的答案,然而:

注意,整個頁面生命週期的更新面板電話甚至被處決。基本上ASP.Net生成整個頁面的標記,但只返回更新面板的部分。無論是在加載,prerender等事件的頁面和它的任何控件將執行每個面板​​更新。

您可以通過檢查ScriptManager.IsInAsyncPostBack的值來檢查您是否正在進行正常頁面加載或AJAX /更新面板加載。您可以將不想執行的代碼封裝在「不IsInAsyncPostBack」塊中。我個人會避免使用更新面板,並使用純AJAX調用來更新圖像。

+0

謝謝,AuSteve。不幸的是,我正在使用一些現有的代碼(我沒有源代碼 - 不要問),並添加一個新的控件。 – 2010-11-08 09:18:17

+0

您仍然可以將您的邏輯封裝在「非IsInAsyncPostBack」塊中,以便您的代碼僅在整頁加載時運行。 – AUSteve 2010-11-08 23:40:58