Visual Basic.NET - Problema al actualizar gridview manualmente

 
Vista:

Problema al actualizar gridview manualmente

Publicado por Delfin (1 intervención) el 12/03/2009 05:51:55
Hola buena noche mi duda es la siguiente:
Tengo una pagina con un girdview cargado manualmente,

Private Sub cargar_cajas()

Dim sqlcon As SqlConnection = New SqlConnection(strconexion)
Dim DA_cajas As New SqlDataAdapter("SELECT ca.caja AS CAJA, ca.descripcion AS DESCRIPCION, CASE WHEN usu.caja " & _
"IS NULL THEN 0 ELSE 1 END AS ASIGNADA FROM oi_cajas AS ca LEFT JOIN usuarios " & _
"AS usu ON usu.caja=ca.caja ORDER BY ca.caja ", sqlcon)
Dim DAT_cajas As New DataSet()
DAT_cajas.Clear()
DA_cajas.Fill(DAT_cajas, "cajas")
grid_cajas.DataSource = DAT_cajas
grid_cajas.DataBind()

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not Request.IsAuthenticated Then
FormsAuthentication.RedirectToLoginPage()
Else
Call cargar_cajas()
End If

End Sub

El problema esta en que al momento de actualizar, (coloque en true la propiedad del gridview de editar (AutoGenerateEditButton)), no toma el nuevo valor del textbox que estoy actualizando, pero si ejecuta la accion, por que reviso mi base de datos y esta modificada a la fecha. Mi teoria es que, al darle actualizar refresca la pagina, con lo cual me vuelve a cargar el gridview con los datos de la base, no los que tiene el grid en ese momento.

Protected Sub grid_cajas_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles grid_cajas.RowUpdating

Dim sqlcon As SqlConnection = New SqlConnection(strconexion)
Dim sqlcmd As SqlCommand
Dim strSQL As String
Try
Dim demo As GridViewRow = grid_cajas.Rows(e.RowIndex)
Dim tcaja As TextBox = demo.FindControl("txt_caja_edit")
Dim tdescripcion As TextBox = demo.Cells(2).FindControl("txt_descripcion_edit")
strSQL = "UPDATE OI_CAJAS SET descripcion=@descripcion, que='C', quien=@quien, cuando=GETDATE(), donde=HOST_NAME() " & _
"WHERE caja=@CAJA"
sqlcmd = New SqlCommand(strSQL, sqlcon)
sqlcon.Open()
With sqlcmd
.Parameters.Add("@caja", SqlDbType.Int, 4)
.Parameters.Add("@descripcion", SqlDbType.VarChar, 50)
.Parameters.Add("@quien", SqlDbType.VarChar, 15)

.Parameters("@caja").Value = Convert.ToInt64(tcaja.Text)
.Parameters("@descripcion").Value = tdescripcion.Text.ToUpper
.Parameters("@quien").Value = Page.User.Identity.Name
End With
sqlcmd.ExecuteNonQuery()
sqlcon.Close()
grid_cajas.DataBind()
Call cargar_cajas()
Catch ex As Exception
MsgBox("Error: " & ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Error")
If Not sqlcon Is Nothing AndAlso sqlcon.State <> ConnectionState.Closed Then
sqlcon.Close()
End If
End Try

End Sub

Bueno espero haberme explicado y si alguien tenga alguna idea que me pueda ayudar por favor, se los agradeceria bastante.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder