日期:2014-05-19  浏览次数:20526 次

用CallBack更新GridView的问题
请教各位

目前我的作法是当在客户端按下按钮   (如删除)之后

CallBack回server端操作GridView   再将操作完毕的GridView以html形式

传回客户端更新页面

问题是当我成功的编辑资料后   客户端的GridView也正确的更新了

但当我下次在CallBack回server端的时候   抓取GridView状态却是停留在   未修改前的状态.....

导致抓到不正确的数值   而无法对资料进行操作

 

程式码流程大概如下

Public   Function   GetCallbackResult()   As   String   Implements   System.Web.UI.ICallbackEventHandler.GetCallbackResult

判断命令

呼叫相对应的function(ex:   DeleteData)

将要更新的html传回客户端

End   Function

 

Public   Sub   DeleteData()

呼叫操作数据库function <------第二次执行到这   却发现GridView维持在   未修改前的状态

呼叫DataBind   function(GridViewBind)

End   Sub

Public   Sub   GridViewBind()

到数据库重新select资料

GridView.DataBind <-----第一次执行完   bind立刻看GridView的确是修改过的状态

End   Sub

我以单步执行确定   数据库的确有更改了   也有重新bind了

怎么还会如此@@???

麻烦各位给点提示吧!


------解决方案--------------------
不是很明白?deletedata为什么要执行两次?
------解决方案--------------------
我还没有看你的代码,待会看。我看到你前面两段话,就有一个事实要告诉你:客户端回调并不能正常保存ViewState到客户端,但是客户端回调却要从客户端取ViewState(对应的隐藏域)到服务器。结果,回调之后,当再次回调时,服务器端控件的状态都根本是第一次回调之前的,而不是本次回调之前的。