Usuario
Borrar un registro de un Gridview paginado

Pregunta
-
Hola a todos.
Tengo la siguiente duda, como puedo eliminar un registro de mi gridview, que esta paginado?, actualemente mi gridview tiene la opcion de paginado en True, y el maximo de registros por pagina es de 5, cuando quiero eliminar un registro (existiendo solo 5 registros) lo puedo hacer facilmente en el evento GridView_RowDeleting con el e.RowIndex, el problema ocurre cuando existen mas de 5 datos, ya que al pasar a la siguiente pagina el primer elemento tiene el e.RowIndex como cero, y eso es mentira, ya que ese es el elemento numero 6 de mi datasource y al borrar elimina el registro que no se debe,
Alguien sabe como puedo hacerlo.
muchas gracias.
Jorge Molano.
jin
Todas las respuestas
-
Hola,
creo saber lo que pasa, al momento de llamar al evento GridView_RowDeleting, el e.RowIndex se refiere al indice de la fila donde estas en ese momento y no al registro que quieres eliminar, me parece que tu estas eliminado el registro con este indice.
Para obtener los datos del registro que quieres eliminar debes acceder primero a la fila Dim row = GridView .Rows(e.RowIndex) y luego obtienes los valores de casa celda con row.cells(numero de la celda).text .
Ahora, existe una mejor manera de hacer esto que es estableciendo el KeyName en la grilla por ejemplo <asp:GridView ID=" GridView " runat="server" DataKeyNames="<Nombre de campo ID de tu registro>" AllowPaging="True" PageSize="5"> y para acceder a este dato lo haces así nRegistro = Grid1.DataKeys(e.RowIndex).Value
Mira este ejemplo
Protected Sub GridView_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView.RowDeleting nRegistro = GridView.DataKeys(e.RowIndex).Value objInforme.mtdEliminar(nRegistro) lblMensaje.Text = "Registro fue Eliminado" GridView.DataSource = objInforme.mtdObtenerInformacion() GridView.EditIndex = -1 GridView.DataBind() End Sub
Espero te sirva
saludos,
- Propuesto como respuesta Felipe Saavedra lunes, 25 de mayo de 2009 20:11
-
Hola Felipe,
Felipe muchas gracias por tu respuesta me ha servido de maravilla cuando mi ID de mi registro es consecutivo pero cuando mi id no es consecutivo me edita o borra algo que no es, pues me devuelve el id del item asignado al row y en este caso me deberia devolver el id del datasource para poder editarlo.
Sim embargo muchisimas gracias tu respuesta me ha sido muy beneficiosa en mi desarrollo.
Jorge Molano.
jin -
Hola Felipe,
Felipe muchas gracias por tu respuesta me ha servido de maravilla cuando mi ID de mi registro es consecutivo pero cuando mi id no es consecutivo me edita o borra algo que no es, pues me devuelve el id del item asignado al row y en este caso me deberia devolver el id del datasource para poder editarlo.
Sim embargo muchisimas gracias tu respuesta me ha sido muy beneficiosa en mi desarrollo.
Jorge Molano.
jin