none
Seleccionar fila en gridview filtrado RRS feed

  • Pregunta

  • Buenos días!. Estoy atorado en lo siguiente:

    Tengo un gridview que lo lleno con una consulta en donde le agregue un botón. Ese mismo botón toma el valor de la fila y lo lleva a otra página (columna DNI de la base de datos). Hasta ahí todo bien, el problema me surge cuando el gridview esta filtrado. Si bien logro que filtre bien, al seleccionar una fila no me trae el valor correcto me trae otro totalmente diferente.

    Este es el gridview:

    <asp:GridView ID="gvcarteratotal" runat="server" CssClass="table table-hover" AllowPaging="true" AllowSorting="true" 
             PageSize="50" DataKeyNames="DNI" OnPageIndexChanging="gvcarteratotal_PageIndexChanging" AutoGenerateColumns="false" 
               OnRowCommand="gvcarteratotal_RowCommand">
                <Columns>
                    <asp:BoundField DataField="DNI" HeaderText="DNI" />
                    <asp:BoundField DataField="Apellido" HeaderText="Apellido" />
                    <asp:BoundField DataField="Nombre" HeaderText="Nombre" />
                    <asp:BoundField DataField="Padron" HeaderText="Padrón" DataFormatString="{0:d}" />
                    <asp:BoundField DataField="Capital" HeaderText="Capital" DataFormatString="{0:C2}" />
                    <asp:ButtonField ButtonType="Link" CommandName="Select" Text="Obs"   />
                </Columns>
            </asp:GridView>

    Y este es el código que uso para tomar el datos y enviarlo a la otra página:

    protected void gvcarteratotal_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "Select")
                {
                    int index = Convert.ToInt32(e.CommandArgument);
                    
                    int dni = Convert.ToInt32(gvcarteratotal.DataKeys[index].Value);
                    Response.Redirect("Detalle.aspx?DNI=" + dni);
                }
    
            }

    Probé de todo, pero no logré avanzar.

    Desde ya agradecido por la ayuda que me puedan dar.

    sábado, 15 de abril de 2017 20:40

Respuestas

  • lo resolví apenas termine de escribir el post!!

    Hice lo siguiente:

    <asp:TemplateField HeaderText="Detalle" >
                      <ItemTemplate>
                       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# string.Format("~/Detalle.aspx?DNI={0}", Eval("DNI")) %>'>Detalle</asp:HyperLink>
                      </ItemTemplate>
                    </asp:TemplateField>

    Aprovecho y hago la siguiente consulta:

    Hay alguna ventaja o desventaja de hacerlo de esta forma y/o con el evento OnRowCommand?

    Saludos.

    • Marcado como respuesta gw_lapida sábado, 15 de abril de 2017 21:02
    sábado, 15 de abril de 2017 21:02

Todas las respuestas

  • lo resolví apenas termine de escribir el post!!

    Hice lo siguiente:

    <asp:TemplateField HeaderText="Detalle" >
                      <ItemTemplate>
                       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# string.Format("~/Detalle.aspx?DNI={0}", Eval("DNI")) %>'>Detalle</asp:HyperLink>
                      </ItemTemplate>
                    </asp:TemplateField>

    Aprovecho y hago la siguiente consulta:

    Hay alguna ventaja o desventaja de hacerlo de esta forma y/o con el evento OnRowCommand?

    Saludos.

    • Marcado como respuesta gw_lapida sábado, 15 de abril de 2017 21:02
    sábado, 15 de abril de 2017 21:02
  • Hola gw_lapida,

    Gracias por visitar los foros, y compartir tu solución.

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, hace que sea más fácil para los otros visitantes encontrar la solución  más tarde. Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal  cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 20 de abril de 2017 16:57
    Moderador