2010-10-14 64 views
0

我在使用ISyncResult时遇到了将数据绑定到数据中继器的问题。 这就是我正在做的。 更新面板中有一个按钮,它从用户获取输入并调用一个函数,该函数返回一个数据集,然后绑定到位于更新面板内的数据中继器。 我做什么,我做了一个委托给这个函数,现在我打电话这样使用IAsyncResult无法正常工作更新updatepanel内的DataRepeater!

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()是一种调用方法异步的方法,并不意味着它可以使用异步回发。 BeginInvoke()在本地环境中是异步的,而异步回发仅仅是远程环境的部分html更新。 这是两回事。你需要完成你的数据集b4 u呼叫数据绑定

+0

数据集完成的功能在别的地方,而在回调函数中,当我调试时,我看到数据,我也在调试器中看到数据被传递给datarepeater。但是,浏览器之后什么也没有显示。我认为有一个页面更新我在某处丢失。由于datarepeater里面updatepanel我也试过Updatepanel.Update(),但没有! – Besnik 2010-10-15 11:08:24

+0

我可以看到asp页面吗? – Bonshington 2010-10-15 16:15:53

相关问题