none
Seleccionar fila en gridview filtrado RRS feed

  • Pregunta

  • Hola,

    Tengo un gridview que filtro por el campo nombre con el siguiente código:

        Protected Sub btnBuscar_Click(sender As Object, e As EventArgs) Handles btnBuscar.Click

            filtro = String.Format("Nombre Like '%{0}%'", tbnombre.Text)
            dv.RowFilter = filtro
            GridView1.DataSource = dv
            GridView1.DataBind()
        End Sub

    También tengo un botón en cada fila que me permite seleccionar un cliente y abrir su ficha. El código es el siguiente:

        Private Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GridView1.RowCommand
            If e.CommandName = "open" Then
                Dim index As Integer = Convert.ToInt32(e.CommandArgument)
                variable.cliente = CInt(GridView1.Rows(index).Cells(2).Text)
                variable.origen = "ConsultaClientes"
                variable.nuevoregistro = False
                Response.Redirect("MantClientes.aspx")
            End If
        End Sub

    Mi problema es el siguiente. Cuando aplico un filtro y después selecciono una de las filas del gridview filtrado, me devuelve un número de fila en el campo index y busco su número de cliente que pongo en la variable.cliente.

    Sin embargo lo que ocurre es que si por ejemplo tengo 50 clientes y filtro los que se llaman Pepe que son 5. Selecciono el segundo de los Pepe, en realidad me devuelve el segundo cliente de la lista total, no el segundo cliente de la lista filtrada.

    Espero podáis ayudarme.

    jueves, 23 de julio de 2015 10:19

Respuestas

  • hola

    >>Selecciono el segundo de los Pepe, en realidad me devuelve el segundo cliente de la lista total, no el segundo cliente de la lista filtrada.

    de casualidad cargas el grid en el evento Page_Load ? si lo haces verificas que ese codigo este dentro del

    If Not IsPostBack Then

      aqui cargas el grid

    End If

    sino lo haces de esta forma se recargara el grid seguramente sin los filtros aplicados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de julio de 2015 12:13

Todas las respuestas

  • hola

    >>Selecciono el segundo de los Pepe, en realidad me devuelve el segundo cliente de la lista total, no el segundo cliente de la lista filtrada.

    de casualidad cargas el grid en el evento Page_Load ? si lo haces verificas que ese codigo este dentro del

    If Not IsPostBack Then

      aqui cargas el grid

    End If

    sino lo haces de esta forma se recargara el grid seguramente sin los filtros aplicados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de julio de 2015 12:13
  • Te recomiento que en vez de usar el index para identificar el cliente de la lista, lo hagas mejor usando el id de ese cliente, por que si no estaras filtrando el index incorrecto cada vez que filtras este cambia.

    Si mi respuesta fue útil ayudame marcándola como correcta.

    jueves, 23 de julio de 2015 16:54
  • Gracias.

    Lo que he hecho es poner también el filtro en en el evento Page_load.

    Ahora funciona.


    Gabriel Marco

    viernes, 24 de julio de 2015 10:28