0

Мне нужно вызвать веб-метод веб-службы асинхронно из кода, расположенного за веб-страницей. В функции обратного вызова мне нужно привязать gridview и визуализировать его. Я хочу частично отобразить это gridview в функции обратного вызова в codebehind.Как вызвать веб-метод асинхронно и частично визуализировать элемент управления?

Как реализовать это?

Возможно ли реализовать все это в коде без использования javascript?

+1

Одна вещь, я уверен, что это невозможно реализовать без javascript. Когда вы говорите «частичный», «обратный вызов» ... уже какой-то javascript делает какую-то магию – asyncwait

ответ

2

Есть несколько вариантов, но в основном вам нужно сделать что-то вроде этого:

  1. Использование Visual Studio для создания прокси-класс для доступа к веб-сервис, с помощью опубликованной WSDL
  2. Создать асинхронную веб-страницу, установив Async = True в директиве страницы
  3. В методе Page_Load() вашего кода запишите методы, которые начнут и завершат вызов веб-службы async, создав объект PageAsyncTask и вызвав RegisterAsyncTask()
  4. Из метода, который запускает асинхронную задачу, вызывает метод Begin, который был создан как часть прокси-класса, и возвращает связанный IAsyncResult вызывающему абоненту
  5. Когда вызов веб-службы завершается, среда выполнения вызовет ваш зарегистрированный метод окончания. Оттуда вызовите метод End в прокси, чтобы получить результаты вызова.
  6. Databind результаты для GridView на вашей странице.

В случае, если это помогает, я прохожу подробный пример в этих строках в моей книге, включая пример кода: Ultra-Fast ASP.NET.

0

Для этого можно использовать асинхронную загрузку страницы ASP.NET.

В общем, он состоит из добавления Async = "true" в директиву страницы и добавления некоторых обработчиков событий в код позади.

Отличный ресурс по этому вопросу - "Asynchronous Pages in ASP.NET 2.0" MSDN Magazine article.

Смежные вопросы