Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas sin resolver al capturar datos de un DataGrid

Estas en el tema de Problemas sin resolver al capturar datos de un DataGrid en el foro de .NET en Foros del Web. Hola En relación al problema que tengo de la captura de los valores de una linea de un Datagrid en ASP.NET, aun se me presenta. ...
  #1 (permalink)  
Antiguo 22/03/2005, 12:09
 
Fecha de Ingreso: marzo-2005
Mensajes: 19
Antigüedad: 19 años, 2 meses
Puntos: 0
Problemas sin resolver al capturar datos de un DataGrid

Hola

En relación al problema que tengo de la captura de los valores de una linea de un Datagrid en ASP.NET, aun se me presenta. No sé como resolverlo; he intentado cosas variadas como las que le coloco a continuación pero no me funciona:

El DataGrid se llena en función del resultado de un SP ejecutado desde SQL Server.

He creado el siguiente procedimiento para capturar por ejemplo el valor de la segunda columna:

Sub Item_Click(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)

Dim x As Integer

Dim texto As String

Dim valor As TextBox

valor = CType(E.Item.Cells(2).Controls(0), TextBox)

texto = valor.Text

Sin embargo al ejecutarlo se me genera el siguiente error: "Specified argument was out of the range of valid values. Parameter name: index ".

Si me pueden dar una referencia de mi error estaría muy agradecido ya que no he podido continuar con mi proyecto, he buscado en algunos foros pero no me han respondido a mi duda; me pueden ayudar por favor ?.

Quizas esté haciendo algo mal. Hay algun procedimiento para capturar el valor de la línea que el usuario seleccione?

Gracias
  #2 (permalink)  
Antiguo 22/03/2005, 12:31
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años
Puntos: 7
Texto = CType(E.Item.Cells(2).Text)
deberia ser suficiente
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 22/03/2005, 12:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 19
Antigüedad: 19 años, 2 meses
Puntos: 0
De acuerdo

Muchas Gracias Mickel, me ha funcionado.

Por que crees que se me presentaba este error?. Te lo pregunto ya que con la propiedad Control(0) estaba haciendo referencia al unico objeto tipo text que estaba creando.

Saludos

Última edición por C@rlos_A; 22/03/2005 a las 12:42
  #4 (permalink)  
Antiguo 22/03/2005, 12:41
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola

Supongo, porque no lo comentas, que tu datagrid lo habilitas en modo de edicion, de hacer esto , cuando se realiza el postback debes de validarlo para que no te recargue tu datagrid en este evento ( If Me.Page.IsPostBack = False Then) en el page_Load

Saludos
  #5 (permalink)  
Antiguo 22/03/2005, 12:49
 
Fecha de Ingreso: marzo-2005
Mensajes: 19
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola

Directamente no lo habilitaba en modo de edición ya que si lo hacía se habilitaba la línea para que el usuario pudiese escribir. Yo directamente solo deseaba que al hacer clic en la primera columna que tenía la columna "Selecccionar", los datos de la selección se pasaran a unas cajas de texto que tenía en la misma página.
En el Load hago la validación
(If Me.Page.IsPostBack = False Then... y en caso de ser False es que activo el procedimiento de la carga del Datagrid)

El procedimiento que estoy haciendo para obtener los datos de la fila del datagrid es optimo, o hay un procedimiento mejor?. Si deseo pasar los valores seleccionados a otro webform tendría que utilizar variables globales como lo preguntan otros compañeros en el foto, verdad?.

Saludos y Gracias

Última edición por C@rlos_A; 22/03/2005 a las 12:52
  #6 (permalink)  
Antiguo 22/03/2005, 14:12
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años
Puntos: 7
Bueno, mira, en un datagrid.
Item es el objeto de la fila
Cells es la coleccion de columnas de esa fila
y Text es el valor de esa celda

Asi que la forma mas rapida de referenciar el valor era esa que te sugeri. Yo no sabria responderte por si es o no la forma optima ya que mi estandar es diferente. Uso el RowSelectorColumn para que seleccionen, via RadioButton, una fila o si no uso el hipervinculo de la columna en modo Edit y en el EditCommand tomo los valores seleccionados.

Ahora, para pasar los valores a otro form... ¿no seria lo optimo marcarlos de alguna forma en la bd para que de alli los levantes luego?
__________________
No tengo firma ahora... :(
  #7 (permalink)  
Antiguo 22/03/2005, 16:51
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Los pudieras pasar por URL concatenandolos y recuperarlos en el form2 por ejemplo, aunque si tus valores contiene mucha informacion(mas de 256) puedes tener algunos problemas por el tamaño de URL generado.

Lo que siguiere Mikel me parece buena opcion para solucionar lo que te comento de cadenas muy grandes en el URL.
Saludos
  #8 (permalink)  
Antiguo 23/03/2005, 09:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 19
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta

Hola

Lo que sugieren entonces es que cada vez que el usuario seleccione una fila del datagrid, su contenido se guarde en una tabla auxiliar de mi BD?. Luego en el evento LOAD del formulario siguiente se leería esta tabla y se recuperarían los valores de la selección?.

Todo el contenido del datagrid es el resultado de la ejecución de un SP en SQL Server entre varias tablas.

Saludos y Gracias

Última edición por C@rlos_A; 23/03/2005 a las 09:05
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.