2009-05-23 46 views
0

在狀態更新發送給用戶,我有以下:如何部分更新

  1. 母版頁
  2. 形式StatusDisplay - ASCX用戶控件顯示的BeginRequest期間PartialPostback或更新Happenning MS AJAX例外endRequest
  3. 用的.ascx Web用戶控件的多級頁面,一些動態加載

目前,當回傳更新面板的形式StatusDisplay節目中發生「更新請求..」以及最後的例外情況。

我還希望發出特定狀態更新,例如StatusDisplay應顯示的不同位置的「客戶添加」。目前,還沒有其他控件中存在StatusDisplay的知識,我想保持這種狀態。

如何做到這一點?

回答

1

使用稱爲反向ajax的技術。 Reverse Ajax允許服務器在內容可用時立即將內容推送到瀏覽器,這通常通過組合IFrame,Response刷新和通用JavaScript函數來處理回調來實現。

easy incremental status updates for long requests是一篇關於學科。

這裏的示例實現依賴於假設,其創建和刷新到客戶端的JavaScript具有已附加到父窗口對象的JavaScript回調函數「UpdateProgress」(因爲調用是在IFrame內進行的)。由於任務長時間運行,代碼執行刷新到客戶端並執行JavaScript函數執行任何操作。

protected void UpdateProgress(int PercentComplete, string Message) 
{ 
    // Write out the parent script callback. 
    Response.Write(String.Format(
    "<script>parent.UpdateProgress({0}, '{1}');</script>", 
    PercentComplete, Message)); 
    // To be sure the response isn't buffered on the server. 
    Response.Flush(); 
} 
+0

goodlink,但無法理解它將如何與回發場景一起工作。 – 2009-05-24 00:00:00