点击编辑的时候不光要设置grid的EditItemIndex,同时还要对信息进行绑定。

解决方案 »

  1.   

    这是dstapprove 的生存周期问题,你在取数据事件中对其赋值,而在编辑事件中的dstapprove 为空,故DataGird消失。
    将dstapprove  定义为static。
      

  2.   

    错在dstapprove上,在两次返回服务器之间,变量是不能保存下来的。
    你或者把dstapprove放在Session里。
    或者在EditCommand中再次从数据库读取数据,放到dstapprove里。
      

  3.   

    DataSet初始化没用的,DataGrid不对他做
    缓存的,可以用session或其他方式保存Datagrid刷新时,他就没有了
      

  4.   

    sumanden(心平气和) 
      static 只能用于过程内,我把dstapprove定义成static后,在“编辑”时无法访问dstapprove。我增加一个类变量dsData,来保存dstapprove的数据但还是有问题,代码如下:
    =========“取数据的代码”
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Approves As New DataAccess.OAApproves()
            Static dsApprove As TestOA.OAData.ApproveData '是数据集
            dsApprove = Approves.GetApproveByID(1)
            dsData = dsApprove.Copy()  ’没把数据Copy过来?????
            With DataGrid1
                .DataSource = dsApprove
                .DataBind()
            End With
        End Sub
    =====“编辑的代码”
     Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
            DataGrid1.EditItemIndex = e.Item.ItemIndex        DataGrid1.DataSource = dsData
            DataGrid1.DataBind()
        End Sub
      

  5.   

    icyer() ,smilefox,sumanden(心平气和) 
      谢谢,问题已解决。的确是dstapprove没有缓存的问题。