Hola,
Llevo unos dias rompiendome la cabeza porqué no consigo recoger el valor modificado sobre un textbox de una fila de un datagrid.
Para explicarme mejor, he hecho un carrito de la compra donde muestro mediante un datagrid la referencia del producto, el nombre, el precio, y finalmente en un textbox, las cantidades de ese producto que deseo comprar, que por defecto se visualiza '1'.
A continuación he generado una <ButtonColumn>, para que despues de introducir una nueva cantidad, presionar sobre el boto actualizar, y esta ir a la función correspondiente de actualizar el dato de esa fila, mediante un ItemComand.
Lo que pasa es que va todo estupedamente, recojo la fila que quiero, pero sin embargo, nunca consigo recoger el nuevo dato introducido en el textbox. Siempre me muestra '1'.
Lo he probado todo, y lo último en que se me ha quedado es lo siguiente:
//********************************************
Private Sub dgCarro_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles dgCarro.ItemCommand
Dim mitxtBox As Web.UI.WebControls.TextBox
miTabla = Session("micarro")
Try
mitxtBox = CType(e.Item.FindControl("textCuantos"), Web.UI.WebControls.TextBox)
miFila = miTabla.Rows(CInt(e.Item.ItemIndex))
miFila.BeginEdit()
miFila("Cantidad") = CInt(mitxtBox.Text.Trim)
miFila.EndEdit()
Session("micarro") = miTabla
Catch exc As Exception
ProcessModuleLoadException(Me, exc)
End Try
End Sub
//*************************************************
Mi duda es que 'mitextbox' siempre recoge '1'. Todo el resto va bien. si pusiera manualment '8' p.ej si que se modifica en el DataTable que es en lo que estoy trabajando.
'textCuantos' es el texbox que muestro en el datagrid y con el que recojo (o al menos intento) el valor.
También quiero preguntar si influye en algo, poner este 'texCuantos' en una columna <ItemTemplate> en el datagrid, o <EditItemTemplate>. Que propiedades diferentes adquiere cada?
Bueno, eso es todo, espero que me haya explicado bien.
Muchas gracias si me conseguis ayudarme. Me estoy volviendo loco ya.
Un saludo.