2010-10-14 2 views
0

У меня возникли проблемы с привязкой данных к ретранслятору данных, когда я использую ISyncResult. Это то, что я делаю. В панели обновления есть кнопка, которая получает вход от пользователя и вызывает функцию, которая возвращает набор данных, который затем я связываю с ретранслятором данных, который также находится внутри панели обновления. То, что я сделал, что я сделал делегат этой функции, теперь я вызываю эту функцию, как этотОбновление DataRepeater внутри панели обновления с помощью функции IAsyncResult не работает!

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», но на моей странице ничего не отображается, даже если данные передаются элементам управления внутри ретранслятора данных во время отладки.

ответ

0

его не работает таким образом. BeginInvoke() - это способ вызова метода async, и это не значит, что он будет работать с асинхронной обратной записью. BeginInvoke() является асинхронным в локальной среде, в то время как асинхронная обратная передача представляет собой лишь частичное обновление html с удаленной средой. это две разные вещи. Вам нужно заполнить свой набор данных b4 u call databind

+0

Функция, в которой набор данных завершен, находится где-то в другом месте и в функции обратного вызова при отладке. Я вижу данные, которые я также вижу, когда в отладчике передаются значения, передаваемые в datarepeater. НО, ничто не отображается в браузере после. Я думаю, что есть обновление страницы, которое я где-то отсутствует. Поскольку datarepeater находится внутри updatepanel, я также пробовал Updatepanel.Update(), но НИЧЕГО! – Besnik

+0

Могу ли я увидеть страницу asp? – Bonshington