none
Seleccionar una celda determinada de un gridview RRS feed

  • Pregunta

  • Hola Amigos,

    Estoy tratando de eliminar una fila de un gridview, pero al estar enlazado a los datos por codigo, no tengo la opción de eliminar, editar ni agregar automaticamente.

    Por esto es que yo selecciono "AutoGenerateDeleteButton"=true y de esta forma tengo el boton eliminar que nececito, pero no se como hacer para que en el evento "RowDeleting" me elimine la fila seleccionada, ya que lo hago con una funcion que necesita el Nombre que figura en la columna "Nombre" de dicha fila.

    Es decir, la funcion es algo como esto Funcion int eliminarfila (string nombre), ya que con ese nombre filtro el registro a eliminar de la base de datos.

    Espero que alguien me pueda ayudar con este lio.

    Saludos,

    martes, 6 de septiembre de 2011 4:13

Respuestas

  • Estimados,

    Ya logré solucionar el problema solo buscando informacion en otras paginas.

    Lo que yo queria es obtener el valor de una celda especifica de la fila en la cual presiono el boton eliminar para pasar este nombre por parametro en mi funcion y que la funcion elimine el registro de la base de datos.

    les pongo el codigo que soluciona mi problema:

     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string Nombre = DropDownList1.SelectedValue;
    
            int index = Convert.ToInt32(e.RowIndex);
    
            GridViewRow selectedrow = GridView1.Rows[index];
    
            TableCell celda = selectedrow.Cells[1];
    
            String celdaNombre = celda.Text;
    
            ImagenesLP.EliminarVideo(celdaNombre);
            LblEstado.Text = "Archivo eliminado correctamente";
            GridView1.DataSource = ImagenesLP.ObtenerVideos(Nombre);
            GridView1.DataBind();
        }

    Como pueden ver, lo que hago es:

    1- en el evento RowDeleting, consigo con e.RowIndex el numero de fila al cual le seleccione el boton eliminar, por ejemplo fila 6 2- con GridView1.Rows[index] consigo todos los datos de esa fila

    3- despues con selecteddrow.cells[1] selecciono el valor de la celda que yo quiero y la guardo en una variable

    4- despues convertir este valor a string.

    5- Para finalmente poder pasar ese string por parametro en mi funcion eliminar.

    Espero que le sea util a alguien.

    Saludos,

    Luispa

    • Marcado como respuesta Luispa miércoles, 7 de septiembre de 2011 0:22
    miércoles, 7 de septiembre de 2011 0:22

Todas las respuestas

  • hola, lo q debes havcer es capturar tu evento rowdelete,luego eliminar de tu fuente de datos esa fila y volver a bindear el grid, supongo q en ti grid debes tener una columna q se a tu pk para poder eliminar de tu tabla,entonces con ese criterio (o si necesitas mas) vas a tu base de datos(no importa si usas EF o ado.net) eliminas esa fila, y vuelves a realizuar a consulta que llena tu grid

    Julio Avellaneda
    Core Group Comunidad BogotaDotNet
    MCP - MCC
    Blog !!

    martes, 6 de septiembre de 2011 5:00
  • Estimados,

    Ya logré solucionar el problema solo buscando informacion en otras paginas.

    Lo que yo queria es obtener el valor de una celda especifica de la fila en la cual presiono el boton eliminar para pasar este nombre por parametro en mi funcion y que la funcion elimine el registro de la base de datos.

    les pongo el codigo que soluciona mi problema:

     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string Nombre = DropDownList1.SelectedValue;
    
            int index = Convert.ToInt32(e.RowIndex);
    
            GridViewRow selectedrow = GridView1.Rows[index];
    
            TableCell celda = selectedrow.Cells[1];
    
            String celdaNombre = celda.Text;
    
            ImagenesLP.EliminarVideo(celdaNombre);
            LblEstado.Text = "Archivo eliminado correctamente";
            GridView1.DataSource = ImagenesLP.ObtenerVideos(Nombre);
            GridView1.DataBind();
        }

    Como pueden ver, lo que hago es:

    1- en el evento RowDeleting, consigo con e.RowIndex el numero de fila al cual le seleccione el boton eliminar, por ejemplo fila 6 2- con GridView1.Rows[index] consigo todos los datos de esa fila

    3- despues con selecteddrow.cells[1] selecciono el valor de la celda que yo quiero y la guardo en una variable

    4- despues convertir este valor a string.

    5- Para finalmente poder pasar ese string por parametro en mi funcion eliminar.

    Espero que le sea util a alguien.

    Saludos,

    Luispa

    • Marcado como respuesta Luispa miércoles, 7 de septiembre de 2011 0:22
    miércoles, 7 de septiembre de 2011 0:22
  • Funciono perfectamente.  Gracias!!
    miércoles, 9 de enero de 2019 15:44