如何异步调用webmethod并部分呈现控件?

时间:2009-12-05 06:54:16

标签: asp.net javascript web-services asynchronous renderpartial

我需要从网页后面的代码中异步调用web服务的web方法。 在回调函数中,我需要绑定gridview并渲染它。我想部分渲染代码隐藏中的回调函数中的gridview。

如何实现?

是否可以在不使用javascript的情况下在代码隐藏中实现所有这些?

2 个答案:

答案 0 :(得分:2)

有几种选择,但基本上你需要做这样的事情:

  1. 使用Visual Studio构建代理类以使用已发布的WSDL
  2. 访问Web服务
  3. 通过在Page指令
  4. 中设置Async = True来创建异步网页
  5. 在代码隐藏的Page_Load()方法中,通过创建PageAsyncTask对象并调用RegisterAsyncTask()来注册将启动和结束异步Web服务调用的方法
  6. 从启动异步任务的方法中,调用作为代理类的一部分创建的Begin方法,并将关联的IAsyncResult返回给调用者
  7. 当Web服务调用完成时,运行时将调用您注册的end方法。从那里,在代理中调用End方法以获得调用的结果。
  8. 将结果数据绑定到页面上的GridView。
  9. 如果有帮助,我会在本书的这些行中详细介绍示例,包括示例代码:Ultra-Fast ASP.NET

答案 1 :(得分:0)

您可以使用ASP.NET异步页面加载。

通常,它包括向页面指令添加Async =“true”并在后面的代码中添加一些事件处理程序。

关于这个主题的大量资源是"Asynchronous Pages in ASP.NET 2.0" MSDN Magazine article