|
|
Hola
Por lo general, cuando se trabaja con Gridview o DataGridView, este generalmente obtiene sus datos desde un DataTable o un DataSet. Voy a trabajar usando este supuesto ya que en el codigo que me das no puedo deducir de donde exactamente obtiene sus datos el GridView.
El GrdView, a pesar de que te permite hacer la modificación y eliminación de registros, es solo un visualizador de los datos que se encuentran en su fuente, y cuando uno da la orden de que se renueve la información, éste desecha sus datos, vuelve a consultar a su fuente y muestra los datos en pantalla. Asi, cada vez que ejecutas un cambio, en este caso una eliminación, y vuelves a cargar el GridView, no muestra los cambios ya que los datos en el origen (DataTable o DataSet) no han sido modificados.
Lo que hay que hacer para solucionar esto es hacer que los cambios hechos en el GridView se hagan tambien en el origen (en nuestro caso, un Datadet o un DataTable). Asi cada vez que yo hago un cambio en el Gridview, éste sincroniza la información con su fuente y luego vuelve a renovar la grilla mostrando los datos ya modificados.
Para hacer esto puedes usar el siguiente código (en este ejemplo el origen es una Datatable)
GridView grilla = new GridView(); //grilla que muestra los datos
DataTable tabla = new DataTable(); //dataTable que contiene los datos
//obtiene los datos de la BD y la almacena en un DataTable
tabla = Metodo_para_obtener_datos_de_la_BD();
/* El objeto de la clase Binding Source me permite sincronizar
el gridView con el dataTable.
Asi, cada modificacion que yo haga en el GridView también se hará
en el DataTable */
BindingSource sincronizadorTabla = new BindingSource();
sincronizadorTabla.DataSource = tabla;
//Enlaza la tabla sincronizada con el gridView
grilla.DataSource = sincronizadorTabla;
Con esto todo cambio que hagas en la grilla también se hará en el origen de los datos. Asi, cada vez que quieras actualizar la grilla esta mostrará los últimos cambios que se hicieron.
Debo mencionar que hasta este momento no se ha hecho ningún cambio en la Base de datos, sino que sólo en la informacion residente en memoria, por lo que si quieres guardar los cambios hechos solo tienes que sincronizar el DataTable o DataSet con la Base de Datos y listo.
Espero que te sirva.
Saludos
|