none
Como obtener valor de una celda al hacerle clic RRS feed

  • Pregunta

  • Hola a tod@s

    tengo un formulario web aspx, donde he creado un gridview, el cual se carga dinamicamente, necesito obtener el valor de una celda cualquiera al darle clic

    tengo el siguiente codigo para seleccionar la fila

    Protected Sub gv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gv.RowDataBound
            If e.Row.RowType = DataControlRowType.DataRow Then
                e.Row.Attributes.Add("onMouseOver", "this.style.cursor='pointer'")
                e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(gv, "select$" + e.Row.RowIndex.ToString()))
            End If
        End Sub
    gracias de antemano


    martes, 21 de abril de 2015 18:34

Respuestas

  • No se que paso con lo que habia respondido, pero lo vuelvo a enviar:

     Dim Index As Integer = 0
                    For Each cell As TableCell In e.Row.Cells
                        cell.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(gv, "select$" & e.Row.RowIndex.ToString() & "," & Index))
                        Index += 1
                    Next

    Espero te sirva. Saludos.

    miércoles, 22 de abril de 2015 19:53

Todas las respuestas

  • hola, puedes hacer algo como esto:

    private void dataGridView_Click(object sender, DataGridViewCellEventArgs e)
    {
        if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
        {

    var cell=dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

    System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE=""JavaScript"">alert(cell)</SCRIPT>")

        
        }
    }

    saludos

    martes, 21 de abril de 2015 18:49
  • hola

    >>tengo el siguiente codigo para seleccionar la fila

    no se usa el RowDataBound para la seleccion

    se usa el RowCommand o SelectedIndexChanged si defines un link o boton con el CommandName="Select" al presionarlo lanzara estos eventos

    ese codigo que pones solo define un evento del lado del cliente usando javascript, pero no es un evento del lado del servidor

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de abril de 2015 19:12
  • me exprese mal, exactamente, creo el evento para poder dar clic, y con eso en el SelectedIndexChanged puedo obtener el indice de la fila.

    de todas maneras eso no resulve mi duda.

    gracias por aclarar mi pregunta

    martes, 21 de abril de 2015 19:39
  • hola, 

    en gridview no existe el evento click, lo que me has puesto es para datagridview

    miércoles, 22 de abril de 2015 15:01
  • Hola a todos,

    tengo un formulario web en aspx y dentro creo un gridview (no es datagridview) , el cual se llena dinamicamente, quisiera que al momento de hacer clic en una celda cualquiera del gridview obtener el valor de dicha celda.

    gracias de antemano.

    miércoles, 22 de abril de 2015 15:07
  • >>quisiera que al momento de hacer clic en una celda cualquiera del gridview obtener el valor de dicha celda.

    por defecto no puedes pulsar en una celda, sino que debes definir un link o boton que lanza la accion de seleccion de la row

    teniendo la row puedes tomar el valor de la celda que necesites

    para esto defines un CommandField o sino una columna de template con un boton dentro que lleva el CommandName="Select" asi usarias el evento RowCommand

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 22 de abril de 2015 15:12

  • por defecto no puedes pulsar en una celda, sino que debes definir un link o boton que lanza la accion de seleccion de la row

    teniendo la row puedes tomar el valor de la celda que necesites

    para esto defines un CommandField o sino una columna de template con un boton dentro que lleva el CommandName="Select" asi usarias el evento RowCommand

    gracias por la respuesta, eso significa que tendria que agregar una columna, quisiera no agregar columnas extras ¿hay alguna manera de hacerlo?
    miércoles, 22 de abril de 2015 15:35
  • >>eso significa que tendria que agregar una columna, quisiera no agregar columnas extras ¿hay alguna manera de hacerlo?

    podrias definir una columan de dato como link

    digo si tienes una columna con el nombre de la entidad o con su id podrias hacer que al presionar sobre este se lance la accion del evento

    para eso conviertes esa columna en template y defines un Hyperlink que encierre el dato, a ese link le defines el CommandName="Select"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 22 de abril de 2015 16:30
  • se duplico la pregunta

    Como obtener valor de una celda al hacerle clic con aspx



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 22 de abril de 2015 16:31
  • No se que paso con lo que habia respondido, pero lo vuelvo a enviar:

     Dim Index As Integer = 0
                    For Each cell As TableCell In e.Row.Cells
                        cell.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(gv, "select$" & e.Row.RowIndex.ToString() & "," & Index))
                        Index += 1
                    Next

    Espero te sirva. Saludos.

    miércoles, 22 de abril de 2015 19:53