Public Sub DataGrid1_Update(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)        Dim txtname, txturl As TextBox        txtname = e.Item.Cells(1).Controls(0)
        txturl = e.Item.Cells(2).Controls(0)
        Dim sql As String
        sql = "update sys_acl_object set object_name='" & txtname.Text & "',object_url='" & txturl.Text & "' where object_id='" & DataGrid1.DataKeys(CInt(e.Item.ItemIndex)) & "'"
        Response.Write(sql)
        Dim update1 As New GSXY.object.object1        update1.ExecuteSql(sql)
        DataGrid1.EditItemIndex = -1
        Call BindData()
    End Sub

解决方案 »

  1.   

    现在根本就取不到txtname.Text和 txturl.Text  的值
      

  2.   

    try
    txtname = (TextBox)e.Item.Cells(1).Controls(1)
    txturl = (TextBox)e.Item.Cells(2).Controls(1)
    or use
    txtname = (TextBox)e.Item.Cells(1).FindControl("TextBox1")
    txturl = (TextBox)e.Item.Cells(2).FindControl("TextBox1")
      

  3.   

    txtname = (TextBox)e.Item.Cells(1).FindControl("TextBox1")
    先找到模板里面的控件再取值
      

  4.   

    yeah, findcontrol may better,because maybe you can't determine it's the first control or not
      

  5.   

    在你的DataGrid 中有没有UpdateCommand="DataGrid1_Update"
      

  6.   

    System.Web.UI.WebControls.DataGridItem dgi=this.DataGrid1.Items[e.Item.ItemIndex];(dgi.FindControl("TextBox1") as  System.Web.UI.WebControls.TextBox).Text才是你要的东东!
      

  7.   

    txtname = ctype(e.Item.Cells(1).Controls(0),TextBox)
       txturl = Ctype(e.Item.Cells(2).Controls(0),TextBox)