none
Seleccionar columna en gridview asp.net RRS feed

  • Pregunta

  • Hola a todo espero me puedan colaborar, mi problema es el siguiente: Tengo  un gridview de asp.net y quiero obtener la información de cierta fila al momento que la selecciono, ya lo logre pero agregando en cada fila un botón seleccionar o un checkbox pero el reto es obtener la información de la fila simplemente seleccionándola sin necesidad de agregar en cada fila un botón. 
    miércoles, 28 de agosto de 2013 14:34

Respuestas

  • Hola

    deseas obtener el valor de cada celda de esa fila y almacenarla en alguna variable?

    podrías usar el evento SelectedIndexChanged del GridView

        Protected Sub GridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView.SelectedIndexChanged
    
            Dim row As GridViewRow
            row = GridView.SelectedRow
    
            Dim vValor1 As String = row.Cells(0).Text
            Dim vValor2 As String = row.Cells(1).Text
            Dim vValor3 As String = row.Cells(2).Text
            Dim vValor4 As String = row.Cells(3).Text
    
        End Sub

    Nota:

    todas las columnas de tu Gridview deben ser BoundField


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos


    • Editado José Barba miércoles, 28 de agosto de 2013 14:41 correccion
    • Propuesto como respuesta Sergio ParraModerator miércoles, 28 de agosto de 2013 14:46
    • Marcado como respuesta Jimmmy Gomez miércoles, 28 de agosto de 2013 17:19
    miércoles, 28 de agosto de 2013 14:41

Todas las respuestas

  • Hola

    deseas obtener el valor de cada celda de esa fila y almacenarla en alguna variable?

    podrías usar el evento SelectedIndexChanged del GridView

        Protected Sub GridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView.SelectedIndexChanged
    
            Dim row As GridViewRow
            row = GridView.SelectedRow
    
            Dim vValor1 As String = row.Cells(0).Text
            Dim vValor2 As String = row.Cells(1).Text
            Dim vValor3 As String = row.Cells(2).Text
            Dim vValor4 As String = row.Cells(3).Text
    
        End Sub

    Nota:

    todas las columnas de tu Gridview deben ser BoundField


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos


    • Editado José Barba miércoles, 28 de agosto de 2013 14:41 correccion
    • Propuesto como respuesta Sergio ParraModerator miércoles, 28 de agosto de 2013 14:46
    • Marcado como respuesta Jimmmy Gomez miércoles, 28 de agosto de 2013 17:19
    miércoles, 28 de agosto de 2013 14:41
  • Gracias por la respuesta; Si lo que deseo es almacenar el valor de las celdas en una variable al momento si ocupo el evento SelectedIndexChanged mi problema es cuando selecciono una fila no dispara el evento no se si se soluciona poniendo a todas las columnas con BoundFiel?????
    miércoles, 28 de agosto de 2013 17:19
  • Hola

    pero haz eliminado la columna que usabas para seleccionar la fila? el evento RowCommand ya no lo vas a necesitar si deseas ver la selección puedes usar estilos en el RowDataBound de esta forma:

        Protected Sub GridView_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView.RowDataBound
            If e.Row.RowType = DataControlRowType.DataRow Then
                e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(GridView, "Select$" & e.Row.RowIndex.ToString())
                e.Row.Attributes("OnDblClick") = Page.ClientScript.GetPostBackClientHyperlink(GridView, "Select$" & e.Row.RowIndex.ToString())
                e.Row.Attributes("onMouseOver") = "this.style.cursor='Pointer'; this.originalstyle=this.style.backgroundColor ; this.style.backgroundColor='#B0C4DE'"
                e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=this.originalstyle;")
            End If
        End Sub


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    miércoles, 28 de agosto de 2013 17:32