我一直在碰撞這個問題一週,所以我想我最好打電話給專家:)。在回發中加載特定的動態用戶控件
這個問題比實際的代碼問題更美觀,但我懷疑他們可能有關係。在我的程序中,我有一系列動態添加到網頁的用戶控件。這些用戶控件可以包含幾乎任何東西(在合理範圍內),我正在使用的控件現在包含一個按鈕和一個圖表(通過Javascript生成),但可能會變得更加複雜。動態控件通過「Page_Init」事件添加,並且所有渲染均呈現100%正確。我在這方面沒有問題。
當我在其中一個控件中進行回發時,會發生此問題。發生回發時,「Page_Init」事件會在回發中執行代碼之前重新生成所有動態控件。根據頁面生命週期模型,一切正常。但是,由於回發僅發生在其中一個控件中,因此我希望如果只有控制重新呈現。因爲現在所有三個控件都會重新渲染,這會讓用戶感到分心。
有沒有辦法可能攔截按鈕生成的回發,並通過AJAX在服務器處理? Telerik的「RadAjaxManager」做了類似這樣的事情,但遺憾的是這個組件並不適合我,我也不需要任何複雜的東西。我知道一個建議是使用AJAX和Webservices編寫控件,但是在我的場景中這太難了,因爲動態控件可以包含它們自己的靜態控件。
因此,在短期:
- >有相當複雜的服務器端代碼三個功能動態控制。正確運行功能。無法轉換爲純Javascript/Web服務代碼。
- >當其中一個控件執行回發時,所有三個重新呈現。讓用戶分心,尤其是涉及到彈出窗口時。
- >需要一種方法來只重新渲染正在更新的控件。
謝謝!
使用UpdatePanel – Khazratbek
https://msdn.microsoft.com/en-us/library/bb399001.aspx – Khazratbek
感謝您的回覆。我確實有很多更新面板,但他們沒有解決問題。看起來好像我的一個Javascript延遲太長了。不完全解決問題,但有幫助。我最初的想法是像Dojo加載器那樣,網頁的一部分可以在沒有其他人刷新的情況下更新,但似乎手動編寫這樣的代碼非常困難。 – GertV