2009-05-23 47 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