none
Grdview1 selectec index changed RRS feed

  • Pregunta

  • Hola.
    Tengo un problema el cual no puedo solucionar. tengo una gridview que en una de sus columnas tiene dos ImageButons, uno para aceptar y otro para rechazar.
    necesito capturar el evento de cuando se preciona cual boton para realizar una accion especifica. anteriormente utilize el metodo GridView_SelectedIndexChanged para crear
    un ImageButton y asi capturar una Url en la misma gridview, pero ahora no se como aplicar lo mismo a esos dos botones nuevos que e creado.
    La idea de esto es que la gridview muestra informes los cuales pueden ser descargados, aceptados o rechazados. ya logre implementar la descarga con ese imagebutton
    que captura la url, ahora necesito diferenciar los otros dos botones para caturar nuevamente la url y asi poder moverla de una tabla a otra en mi base de datos dependiendo
    si esta fue aceptada o rechazada. estoy programando en visual studio 2012 con visual basic asp.net

    de antemano gracias por la ayuda :).
    jueves, 23 de febrero de 2017 15:56

Respuestas

  • Hola, cual es el problema que tienes con el código que has mostrado debería funcionar, en el evento RowCommand tal como lo has definido ,definir el 

    CommandName="Select"

    hará que primero se lanze el evento 

    GridView1_SelectedIndexChanged(....

    y luego el rowCommand


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    domingo, 5 de marzo de 2017 4:28

Todas las respuestas

  • hola

    si a los imageButton le defiens el CommandName podrias tomar este desde el evento RowCommand

    Button.CommandName Property

    GridView.RowCommand (Evento)

    analiza el evento rowcommand este es el que deberia utilizar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de febrero de 2017 16:22
  • Leandro, gracias por tu pronta respuesta.
    Pasa que ya intente la solucion que me propones pero ahora al momento de ejecutar el codigo
    me lanza un error diciendome que el dato obtenido es nullo. adjuntare un poco del codigo que
    se supone se ejecuta.

    (VB)
    Protected Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GridView1.RowCommand
            If e.CommandName = "aceptarBT" Then
                ' Se obtiene la fila seleccionada del gridview
                Dim row As GridViewRow = GridView1.SelectedRow
                '
                ' Obtengo el id de la entidad que se esta editando
                Dim url As String = (GridView1.DataKeys(row.RowIndex).Value).ToString()
                'para verificar si trae la url correcta
                MessageBox.Show(url)
                Response.Write("<script>window.alert('caga3');</script>")
            End If
            If e.CommandName = "rechazarBT" Then
                Response.Write("<script>window.alert('madrea3');</script>")
            End If
        End Sub

    (HTML)
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                    DataKeyNames="Ruta" OnRowCommand="GridView1_RowCommand"
                    OnSelectedIndexChanged="GridView1_SelectedIndexChanged" CssClass="mGrid" PagerStyle-CssClass="pgr"
                    GridLines="None" AlternatingRowStyle-CssClass="alt" PageSize="7"
                    Font-Size="Medium">
                    <AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
                    <Columns>
                        <asp:BoundField DataField="ID" HeaderText="ID" HeaderStyle-Font-Size="Medium" />
                        <asp:BoundField DataField="nombre" HeaderText="Nombre" HeaderStyle-Font-Size="Medium" />
                        <asp:BoundField DataField="numeroInforme" HeaderText="N° Informe" HeaderStyle-Font-Size="Medium" />
                        <asp:BoundField DataField="numeroMuestra" HeaderText="N° Muestra" HeaderStyle-Font-Size="Medium" />
                        <asp:BoundField DataField="empresa" HeaderText="Empresa" HeaderStyle-Font-Size="Medium" />
                        <asp:BoundField DataField="obra" HeaderText="Obra" HeaderStyle-Font-Size="Medium" />
                        <asp:TemplateField HeaderText="Descargar" HeaderStyle-Font-Size="Medium">
                            <ItemTemplate>
                                <asp:ImageButton ID="imagen" runat="server" CommandName="Select"
                                    ImageUrl="../Images/Places-folder-downloads-icon.png" Style="width: 40px; height: 40px;" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Aprobar / Rechazar" HeaderStyle-Font-Size="Medium">
                            <ItemTemplate>
                                <asp:ImageButton ID="imagenAprobar" runat="server" CommandName="aceptarBT"
                                    ImageUrl="../Images/aceptar.jpg" Style="width: 40px; height: 40px;" />
                                <asp:ImageButton ID="imagenRechazar" runat="server" CommandName="rechazarBT"
                                    ImageUrl="../Images/asdasd.jpg" Style="width: 40px; height: 40px;" />
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    <HeaderStyle Font-Size="Large" Font-Underline="False" />
                    <PagerStyle CssClass="pgr"></PagerStyle>
                    <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                </asp:GridView>

    Como puedes ver ya implemente el codigo para que funcione con un boton de descarga ImageButton="imagen".
    son los otros dos botones los que no puedo diferenciar para que uno realize la accion de aceptar un informe
    y el otro de rechazarlo y asi poder moverlos de tablas en mi base de datos. gracias nuevamente por tu tiempo.
    jueves, 23 de febrero de 2017 19:05
  • Ayuda por favor aun no logro resolver
    lunes, 27 de febrero de 2017 15:08
  • Hola, cual es el problema que tienes con el código que has mostrado debería funcionar, en el evento RowCommand tal como lo has definido ,definir el 

    CommandName="Select"

    hará que primero se lanze el evento 

    GridView1_SelectedIndexChanged(....

    y luego el rowCommand


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    domingo, 5 de marzo de 2017 4:28