【问题标题】:How to call a webmethod asynchronously and partially render a control?如何异步调用 Web 方法并部分呈现控件?
【发布时间】:2009-12-05 06:54:16
【问题描述】:

我需要从网页后面的代码中异步调用 Web 服务的 Web 方法。 在回调函数中,我需要绑定一个 gridview 并渲染它。我想在代码隐藏的回调函数中部分呈现该网格视图。

如何实现?

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

【问题讨论】:

  • 我确信没有javascript就不可能实现。当你说“部分”、“回调”时......已经有一些 javascript 正在发挥作用

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


【解决方案1】:

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

  1. 使用 Visual Studio 构建代理类以使用已发布的 WSDL 访问 Web 服务
  2. 通过在 Page 指令中设置 Async=True 创建一个异步网页
  3. 在后面代码的 Page_Load() 方法中,通过创建 PageAsyncTask 对象并调用 RegisterAsyncTask() 来注册将开始和结束异步 Web 服务调用的方法
  4. 从启动异步任务的方法中,调用作为代理类的一部分创建的 Begin 方法,并将关联的 IAsyncResult 返回给调用者
  5. Web 服务调用完成后,运行时将调用您注册的结束方法。从那里调用代理中的 End 方法以获取调用结果。
  6. 将结果数据绑定到页面上的 GridView。

如果有帮助,我会在我的书中按照这些内容详细介绍一个示例,包括示例代码:Ultra-Fast ASP.NET

【讨论】:

    【解决方案2】:

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

    一般来说,它包括在页面指令中添加 Async="true" 并在后面的代码中添加一些事件处理程序。

    "Asynchronous Pages in ASP.NET 2.0" MSDN Magazine article 是有关此主题的重要资源。

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 2020-03-10
      • 2017-11-23
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多