Hola
Quisiera hacer lo siguiente:
1. Pulso sobre una fila del datagrid y de alguna forma
llamo a un nuevo formulario que mostraria en controles
(textbox, combos, etc) los valores de los campos que se
correspondan con el registro identificado por la clave
de esa fila sobre la que he pulsado.
2. En esa nueva ventana, modifico algún valor y al
aceptar esos cambios, se cierra la ventana y se
actualiza
el datagrid del otro formulario.
Para el punto 1 podes utilizar el evento DoubleClick de
la grilla, dentro de el podrias obtener una referencia de
tipo DataRow para el DataTable que tienes como origen de
la grilla (para un DataView el funcionamiento es analogo):
Esto obtiene el DataRow actual en la grilla:
((DataTable)dgr.DataSource)[dgr.CurrentRowIndex]
Luego podrias pasar la referencia del objeto DataRow al
formulario que deseas abrir. Lo podes pasar como
parametro
en el constructor o bien a traves de una variable miembro
o propiedad del formulario al que llamaras luego de
haberlo creado.
Pasando la referencia a la fila del DataTable y luego
modificando desde el formulario llamado (cuando se
acepten
los cambios) la actualización sería automática en el
DataSource de la grilla (acordate de hacerle Refresh()
luego de modificados los datos)
Bien, el caso que NO PUEDO pasar DataRow porque DATAGRID
no tendrá todas las columnas, solo mostrará algunas,
entonces si paso DataRow y modifico no podré cambiar el
resto de campos. Qué puedo hacer?
Gracias.
Leer las respuestas