0

ISyncResult を使用すると、データをデータ リピーターにバインドできません。これが私がやっていることです。更新パネル内にボタンがあり、ユーザーからの入力を取得し、データセットを返す関数を呼び出します。この関数は、更新パネル内にあるデータ リピーターにバインドします。私がしたことは、この関数にデリゲートを作成したことです。今、この関数を次のように呼び出しています

Dim caller As New AsyncMyFunction(AddressOf MyFunction)

そして、次のように IASyncResult を作成します。

 Dim result As IAsyncResult = caller.BeginInvoke(argument1, argument1, AddressOf MyFunctionCallBack, Nothing)

これは Callback メソッドです。

 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」を渡していることがわかりますが、デバッグ中にデータリピーター内のコントロールにデータが渡されているにもかかわらず、ページに何も表示されません。

4

1 に答える 1

0

そのようには機能しません。BeginInvoke() は非同期メソッドを呼び出す方法であり、非同期ポストバックで動作するという意味ではありません。BeginInvoke() はローカル環境では非同期ですが、非同期ポストバックはリモート環境での部分的な HTML 更新にすぎません。それは2つの異なるものです。データセットを完成させる必要があります b4 u databind を呼び出します

于 2010-10-14T09:22:54.920 に答える