none
problemas con un templatefield RRS feed

  • Pregunta

  • buenas tardes tengo este template field en mi gridview que tiene un evento de confirm si le da cancelar no pasa nada si le doy aceptar me manda error (La cadena de entrada no tiene el formato correcto.)

    este es el codigo 

            <asp:TemplateField HeaderText="Eliminar">
                                            <ItemStyle HorizontalAlign="Center"></ItemStyle>
                                            <HeaderStyle Width="40px"></HeaderStyle>
                                            <ItemTemplate>
                                                <asp:ImageButton  ID="btnDelete" runat="server" CausesValidation="False"
                                                    Text="" ImageUrl="~/imagenes/btn/icon_delete.png" CommandName="eliminar" OnClientClick="return confirm('Delete this Contact?');">
                                                </asp:ImageButton>
                                            </ItemTemplate>
                                        </asp:TemplateField>

    estoy usando el evento rowcommand del gridview

    en esta linea me manda el error 

     int index = Convert.ToInt32(e.CommandArgument);
    saludos
    sábado, 15 de agosto de 2015 16:46

Respuestas

  • Buenas,

    Te falta el CommandArgument, debes añadir esta línea en tu ImageButton,

    CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
    

    Con esto lo que haces es indicar al evento del btnDelete que tiene que recibir el RowIndex del evento click y entonces, podrás convertir este a Int32 y realizar la eliminación por el índice.

    GridViewRow row = TuGridView.Rows[index];
    

    Un saludo,

    • Marcado como respuesta Ibarra9209 sábado, 15 de agosto de 2015 17:01
    sábado, 15 de agosto de 2015 16:51

Todas las respuestas

  • Buenas,

    Te falta el CommandArgument, debes añadir esta línea en tu ImageButton,

    CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
    

    Con esto lo que haces es indicar al evento del btnDelete que tiene que recibir el RowIndex del evento click y entonces, podrás convertir este a Int32 y realizar la eliminación por el índice.

    GridViewRow row = TuGridView.Rows[index];
    

    Un saludo,

    • Marcado como respuesta Ibarra9209 sábado, 15 de agosto de 2015 17:01
    sábado, 15 de agosto de 2015 16:51
  • funciono, muchas gracias.

    saludos

    sábado, 15 de agosto de 2015 17:01