Обновление DataRepeater внутри панели обновления с IAsyncResult не работает!
У меня возникают проблемы с привязкой данных к повторителю данных при использовании ISyncResult. Это то, что я делаю. Внутри панели обновлений есть кнопка, которая получает данные от пользователя и вызывает функцию, которая возвращает набор данных, который я затем связываю с повторителем данных, который также находится внутри панели обновлений. Я сделал то, что сделал делегатом этой функции, теперь я вызываю эту функцию следующим образом
Dim caller As New AsyncMyFunction(AddressOf MyFunction)
И тогда я делаю IASyncResult, как это:
Dim result As IAsyncResult = caller.BeginInvoke(argument1, argument1, AddressOf MyFunctionCallBack, Nothing)
это метод обратного вызова:
Sub MyFunctionCallBack(ByVal ar As IAsyncResult)
Dim result As AsyncResult = CType(ar, AsyncResult)
Dim caller As AsyncMyFunction = CType(result.AsyncDelegate, AsyncMyFunction)
Dim ds As New DataSet
ds = caller.EndInvoke(ar)
MyRep.DataSource = ds
MyRep.DataBind()
End Sub
Мне трудно понять, почему ретранслятор данных не показывает данных. Во время отладки я вижу, что набор данных получает данные и передает "ds", но на моей странице ничего не отображается, даже если данные передаются элементам управления внутри повторителя данных во время отладки.
1 ответ
Это не работает таким образом. BeginInvoke() - это способ вызова метода async, и это не значит, что он будет работать с асинхронной обратной передачей. BeginInvoke() является асинхронным в локальной среде, в то время как асинхронная обратная передача - это только частичное обновление HTML с удаленной средой. это 2 разные вещи. вам нужно заполнить ваш набор данных b4