Actualizar TexBox de un DataGrid

28/03/2006 - 23:39 por jazdian | Informe spam
He buscado hasta perder la esperanza de el porque no puedo actualizar
mi DataGrid de ASP cuando está en modo de edición.

Por ejemplo:

1.- Hago click en el boton "Editar" del registro que quiero actualizar.
2.- Los campos se convierten en TexBox para poder modificarlos.
3.- Al Modificar un campo X y dar clik al Botón "Actualizar", me
regresa el valor anterior y no se actualiza en mi base de datos.

Este es mi código del Boton Actualizar:

Sub UpdateCommand(ByVal Sender As Object, ByVal E As
DataGridCommandEventArgs)
'Recuperamos los valores de los TextBox
Dim TextIdTienda As TextBox = e.Item.Cells(1).Controls(0)
Dim TextTienda As TextBox = e.Item.Cells(2).Controls(0)

Dim VarIdTienda As String = TextIdTienda.Text
Dim VarTienda As String = TextTienda.Text

''''Para ver que valores voy a actualizar primero los mando a una
etiqueta.
''''pero es aquí donde se pierden los valores modificados y obtengo
los valores anteriores
''''Por ejemplo si mi Texbox tiene el valor de "Juan" y lo cambio a
"Pedro" al dar clik a el botón
''''Actualizar obtengo el valor de "Juan" y "Pedro" se pierde y es lo
que se manda a la consulta
''''de actualización, nuevamente el valor de "Juan". No se genera
ningun error.

Message.Text = VarIdTienda & ", " & VarTienda


Dim SQL As String = "UPDATE DIRECTORIO SET NOMBRE='" & VarTienda & "'
WHERE ID_TIENDA='" & VarIdTienda & "'"
Dim conn as New SqlConnection(ConexionSQL)
Dim comm as New SqlCommand(SQL, conn)

'ejecuta los comandos
Try 'controlo el error con el Try .. Catch
conn.Open()
comm.ExecuteNonQuery()
Catch ex as Exception
Message.Text = ex.ToString()
Finally
conn.Close
End Try
MyDataGrid.EditItemIndex = -1
BindGrid()

End Sub


Este es el código de mi DataGrid:

<form runat="server"><P>

<asp:label id="Message" runat="server" width="624px"
forecolor="#000099" enableviewstate="false"></asp:label>&nbsp;</P>

<asp:datagrid id="MyDataGrid" runat="server" Font-Names="Arial"
ForeColor="Black" BorderWidth="1px" GridLines="None" cellpadding="2"
Headerstyle-BackColor="#8080C0" Headerstyle-Font-Name="Arial"
Headerstyle-Font-Bold="True" Headerstyle-Font-Size="10"
BackColor="LightGoldenrodYellow" Font-Name="Arial" Font-Size="8pt"
AlternatingItemStyle-BackColor="#DFDFDF"
AlternatingItemStyle-Font-Name="Arial"
AlternatingItemStyle-Font-Size="8" BorderColor="Tan"
AutogenerateColumns="False" OnEditCommand="EditCommand"
OnCancelCommand="CancelCommand" OnUpdateCommand="UpdateCommand"
DataKeyField="ID_TIENDA">
<FooterStyle BackColor="Tan"></FooterStyle>
<SelectedItemStyle ForeColor="GhostWhite"
BackColor="DarkSlateBlue"></SelectedItemStyle>
<AlternatingItemStyle Font-Size="8pt" Font-Names="Arial" BackColor"PaleGoldenrod"> </AlternatingItemStyle>
<HeaderStyle Font-Size="10pt" Font-Names="Arial" Font-Bold="True"
BackColor = "Tan"> </HeaderStyle>
<Columns>

<asp:EditCommandColumn ButtonType="LinkButton" HeaderText="ACTUALIZAR"
UpdateText="Actualizar" CancelText="Cancelar"
EditText="Editar"></asp:EditCommandColumn>
<asp:BoundColumn DataField="ID_TIENDA"
HeadertEXT="CLAVE"></asp:BoundColumn>
<asp:BoundColumn DataField="NOMBRE"
HeaderText="TIENDA"></asp:BoundColumn>
<asp:BoundColumn DataField="ZONA"
HeaderText="SUPERVISOR"></asp:BoundColumn>
<asp:BoundColumn DataField="RUTAS"
HeaderText="PROMOTOR"></asp:BoundColumn>
<asp:BoundColumn DataField="SEMANA"
HeaderText="SEMANA"></asp:BoundColumn>
<asp:BoundColumn DataField="DIA" HeaderText="DIA"></asp:BoundColumn>
<asp:BoundColumn DataField="CONTACTO"
HeaderText="CONTACTO"></asp:BoundColumn>
<asp:BoundColumn DataField="APELLIDO_PAT_CON" HeaderText="APELLIDOS">
</asp:BoundColumn>
<asp:BoundColumn DataField="CALLE"
HeaderText="CALLE"></asp:BoundColumn>
<asp:BoundColumn DataField="NUMERO"
HeaderText="NUMERO"></asp:BoundColumn>

</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="DarkSlateBlue"
BackColor="PaleGoldenrod"> </PagerStyle>
</asp:datagrid><br>
</form>

Necesito desesperadamente de su ayuda.
 

Leer las respuestas

#1 Matías Iacono
29/03/2006 - 18:27 | Informe spam
Que tienes dentro del metodo BindGrid?

Si la consulta no te genera error alguno, puede que el cargado de datos no
se haga de la forma correcta.



Matías Iacono
Microsoft MVP ASP/ASP.net
DCE3 v.2003 - DCE2 v.2005
Coordinador de evento Comunidad MSDN Bolivia
"jazdian" escribió en el mensaje
news:
He buscado hasta perder la esperanza de el porque no puedo actualizar
mi DataGrid de ASP cuando está en modo de edición.

Por ejemplo:

1.- Hago click en el boton "Editar" del registro que quiero actualizar.
2.- Los campos se convierten en TexBox para poder modificarlos.
3.- Al Modificar un campo X y dar clik al Botón "Actualizar", me
regresa el valor anterior y no se actualiza en mi base de datos.

Este es mi código del Boton Actualizar:

Sub UpdateCommand(ByVal Sender As Object, ByVal E As
DataGridCommandEventArgs)
'Recuperamos los valores de los TextBox
Dim TextIdTienda As TextBox = e.Item.Cells(1).Controls(0)
Dim TextTienda As TextBox = e.Item.Cells(2).Controls(0)

Dim VarIdTienda As String = TextIdTienda.Text
Dim VarTienda As String = TextTienda.Text

''''Para ver que valores voy a actualizar primero los mando a una
etiqueta.
''''pero es aquí donde se pierden los valores modificados y obtengo
los valores anteriores
''''Por ejemplo si mi Texbox tiene el valor de "Juan" y lo cambio a
"Pedro" al dar clik a el botón
''''Actualizar obtengo el valor de "Juan" y "Pedro" se pierde y es lo
que se manda a la consulta
''''de actualización, nuevamente el valor de "Juan". No se genera
ningun error.

Message.Text = VarIdTienda & ", " & VarTienda


Dim SQL As String = "UPDATE DIRECTORIO SET NOMBRE='" & VarTienda & "'
WHERE ID_TIENDA='" & VarIdTienda & "'"
Dim conn as New SqlConnection(ConexionSQL)
Dim comm as New SqlCommand(SQL, conn)

'ejecuta los comandos
Try 'controlo el error con el Try .. Catch
conn.Open()
comm.ExecuteNonQuery()
Catch ex as Exception
Message.Text = ex.ToString()
Finally
conn.Close
End Try
MyDataGrid.EditItemIndex = -1
BindGrid()

End Sub


Este es el código de mi DataGrid:

<form runat="server"><P>

<asp:label id="Message" runat="server" width="624px"
forecolor="#000099" enableviewstate="false"></asp:label>&nbsp;</P>

<asp:datagrid id="MyDataGrid" runat="server" Font-Names="Arial"
ForeColor="Black" BorderWidth="1px" GridLines="None" cellpadding="2"
Headerstyle-BackColor="#8080C0" Headerstyle-Font-Name="Arial"
Headerstyle-Font-Bold="True" Headerstyle-Font-Size="10"
BackColor="LightGoldenrodYellow" Font-Name="Arial" Font-Size="8pt"
AlternatingItemStyle-BackColor="#DFDFDF"
AlternatingItemStyle-Font-Name="Arial"
AlternatingItemStyle-Font-Size="8" BorderColor="Tan"
AutogenerateColumns="False" OnEditCommand="EditCommand"
OnCancelCommand="CancelCommand" OnUpdateCommand="UpdateCommand"
DataKeyField="ID_TIENDA">
<FooterStyle BackColor="Tan"></FooterStyle>
<SelectedItemStyle ForeColor="GhostWhite"
BackColor="DarkSlateBlue"></SelectedItemStyle>
<AlternatingItemStyle Font-Size="8pt" Font-Names="Arial" BackColor"PaleGoldenrod"> </AlternatingItemStyle>
<HeaderStyle Font-Size="10pt" Font-Names="Arial" Font-Bold="True"
BackColor = "Tan"> </HeaderStyle>
<Columns>

<asp:EditCommandColumn ButtonType="LinkButton" HeaderText="ACTUALIZAR"
UpdateText="Actualizar" CancelText="Cancelar"
EditText="Editar"></asp:EditCommandColumn>
<asp:BoundColumn DataField="ID_TIENDA"
HeadertEXT="CLAVE"></asp:BoundColumn>
<asp:BoundColumn DataField="NOMBRE"
HeaderText="TIENDA"></asp:BoundColumn>
<asp:BoundColumn DataField="ZONA"
HeaderText="SUPERVISOR"></asp:BoundColumn>
<asp:BoundColumn DataField="RUTAS"
HeaderText="PROMOTOR"></asp:BoundColumn>
<asp:BoundColumn DataField="SEMANA"
HeaderText="SEMANA"></asp:BoundColumn>
<asp:BoundColumn DataField="DIA" HeaderText="DIA"></asp:BoundColumn>
<asp:BoundColumn DataField="CONTACTO"
HeaderText="CONTACTO"></asp:BoundColumn>
<asp:BoundColumn DataField="APELLIDO_PAT_CON" HeaderText="APELLIDOS">
</asp:BoundColumn>
<asp:BoundColumn DataField="CALLE"
HeaderText="CALLE"></asp:BoundColumn>
<asp:BoundColumn DataField="NUMERO"
HeaderText="NUMERO"></asp:BoundColumn>

</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="DarkSlateBlue"
BackColor="PaleGoldenrod"> </PagerStyle>
</asp:datagrid><br>
</form>

Necesito desesperadamente de su ayuda.

Preguntas similares