如何从工作线程更新页面

时间:2010-07-30 15:29:08

标签: asp.net updatepanel auto-update

我有一个从数据库查询的ASPX页面。获得数据集后,它将绑定到gridview并显示在页面上。所有这些都发生在Page_Load事件中。

当然这是一种简单的方法。告知用户正在检索数据的最佳方式是什么,以及何时我们有数据用数据集中的结果更新页面。

我希望所有这些都发生在同一个ASPX页面中,并且不想跳转页面来实现这一点。我查看了更新面板,但是我不清楚如何使用更新面板完成此操作而没有触发更新面板更新的控件。我的页面上没有控件可以启动数据库查询,它会在页面加载时发生。

如果我在工作线程中执行查询,然后使用gridview作为其一部分在UpdatePanel上调用Update方法,则它不起作用。没有任何事情发生。

有任何想法或帮助吗?感谢。

1 个答案:

答案 0 :(得分:0)

嗯,这是一个很好的问题。就个人而言,我有两个非常相似的方法来做到这一点:

  1. 有一个java脚本,它会以较短的间隔重新加载UpdatePanel。这将为服务器创建一系列回发。在每次回复期间,您应该告诉工人线程并立即返回状态报告,通常是errorpendingsuccess + data
  2. 之一
  3. 使用java脚本,向Web服务发出异步请求,该服务将一直阻塞,直到获取数据为止。与前一个方法(轮询之间的时间)相比,此方法不会带来延迟,但可能会受到某些浏览器/服务器对挂起打开连接的态度的影响。这通常通过引入的一些间隔(例如,1分钟)来解决,因此挂起请求将返回类似need more time的消息,在这种情况下,java脚本应该只重复请求。