Visual Basic.NET - Evento RowEnter de DataGridview

 
Vista:

Evento RowEnter de DataGridview

Publicado por RaEn (2 intervenciones) el 28/04/2011 21:14:42
Estimados:

Lo sgte no he podido solucionarlo, solicto vustra valiosa cooperación.

Lleno un GV a traves de un dataread que lo toma de un SP.

hasta ahí, ningún problema... pero cuando intento hacer una busqueda dentro del evento RowEnter, esa búsqueda vuelva a llamar al evento. ahí queda la grande, adjunto ejemplo.


La grilla ya está previamente llenada, sólo 6 registros. Lo que se busca es tomar el codigo que está en la grilla, buscarlo y mostrar en textbox. el error se da al mover a los text, como indica abajo.

Por lo pronto tomaré directamente de la grilla los datos para los text, pero la idea es que vuelva a leer esos datos de la tabla.

de antemano muchas gracias


Private Sub GVDetalle_RowEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles GVDetalle.RowEnter
If GVDetalle.Focused Then
Dim nCod As Integer = GVDetalle.Item(1, e.RowIndex).Value
Dim cSqlCmd As New SqlClient.SqlCommand("SP_WEB_CONSULTA_OPCIONES")
Dim DrTmp As SqlClient.SqlDataReader

Conexion.Cnx.Open()
cSqlCmd.Connection = Cnx
cSqlCmd.CommandType = CommandType.StoredProcedure
cSqlCmd.Parameters.Add("@nIdOpcion", SqlDbType.Int)
cSqlCmd.Parameters("@nIdOpcion").Value = nCod

DrTmp = cSqlCmd.ExecuteReader()

TxtCodigo.Text = DrTmp("IdOpcion") <-- cuando llega acá nuevamente llama al evento
TxtNombre.Text = DrTmp("NombreOpcion")
ChckActivo.Checked = DrTmp("NombreOpcion") = "S"

Conexion.Cnx.Close()

End If
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

Evento RowEnter de DataGridview

Publicado por Damian (824 intervenciones) el 29/04/2011 15:01:40
Hay que tener cuidado con ese evento, yo en mi caso utilizo el CellValidated() más allá de que no lo paso a las cajas de texto, pero si se ven modificado en la propia grilla.
Por ejemplo:

If e.RowIndex <> -1 Then
If GVDetalle.Columns(e.ColumnIndex).Name = "NombreDeColumna" Then
.......
.......
.......
end if
end if

'Y puedo preguntar que columna son editables y después trabajar ahi adentro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evento RowEnter de DataGridview

Publicado por RaEn (2 intervenciones) el 29/04/2011 18:08:05
¡¡ UF ¡¡

Estimados, al final pude solucionar el tema, lo comento por si alguna vez a alguien le pasa lo mismo.

En realidad era una cosa nada que ver, simplemente no hacía el read(), eso, me imagino, generaba algún error posterior, al cambiar esto ya quedó bien y funciona tal como lo esperaba.

Damian: Gracias por lo que informas respecto a los cuidados de este evento. Siempre es bueno tener en consideración la experiencia de otro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar