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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 jazdian
29/03/2006 - 21:47 | Informe spam
Si se cargan los datos en el DataGrid.

Pero recuerda que antes que el valor de la variable pase a la consulta
de actualización, ya se perdió el nuevo valor que le di en el Texbox
y el valor quedó como estaba originalmente y es ese valor anterior que
llaga a la consulta de actualización.

Lo que esta en el BindGrid es lo siguiente:

Dim MiConexion As String = "Initial Catalog=GOLDEN;Data

Source2.168.2.8;User=INVITADOB;password=INVITADOB;"
Dim MiConsulta As String = "SELECT ID_TIENDA, NOMBRE, SEMANA, DIA FROM
DIRECTORIO WHERE " _
& "ZONA = 1 AND RUTAS = 1"

Sub BindGrid()

Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
myConnection = New SqlConnection(MiConexion)
myCommand = new SqlDataAdapter(MiConsulta, myConnection)
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
MyDataGrid.DataSource = ds
MyDataGrid.DataBind()
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida