none
Confirmação ao deletar do gridview! RRS feed

  • Pergunta

  • Não estou conseguindo colocar uma confirmação ao clicar no botão de excluir do Gridview.

    No HTML:
                <asp:GridView ID="grdCadastro" runat="server" AllowSorting="True" HorizontalAlign="Center"
                    BorderStyle="None" CellPadding="10" GridLines="Horizontal" OnRowDataBound="grdCadastro_RowDataBound"
                    OnRowCommand="grdCadastro_RowCommand" 
                    onrowdeleting="grdCadastro_RowDeleting">
                    <RowStyle BorderStyle="None" CssClass="botaogrid" />
                    <Columns>
                        <asp:ButtonField CommandName="Alterar" ControlStyle-CssClass="botaogrid" ImageUrl="~/images/lista-seletor.png"
                            ControlStyle-BorderStyle="None" ShowHeader="false" ButtonType="Image" Visible="true" />
                        <asp:ButtonField CommandName="Delete" ControlStyle-CssClass="botaogrid" ImageUrl="~/images/excluir.png"
                            ControlStyle-BorderStyle="None" ShowHeader="false" ButtonType="Image" Visible="true" />
                    </Columns>
                    <HeaderStyle BackColor="#003555" CssClass="uc" ForeColor="White" Height="43px" HorizontalAlign="Left"
                        BorderStyle="None" />
                    <AlternatingRowStyle BackColor="#F2F2F2" BorderStyle="None" CssClass="botaogrid" />
                </asp:GridView>
    
    No Code-behind:
         protected void grdCadastro_RowDataBound(object sender, GridViewRowEventArgs e)
        {
    
            if (e.Row.RowType == DataControlRowType.DataRow)
                ((ImageButton)e.Row.Cells[1].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('Confirma a exclusão do registro?');");
        }
    
        protected void grdCadastro_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
    
            if (e.CommandName == "Alterar")
            {
                 //...
            }
        }
        protected void grdCadastro_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int index = Convert.ToInt32(e.RowIndex);
    
            //...
        }
    

    E após clicar 'OK' no alert, ele não passa no RowDeleting!!!

    Mas se eu tirar a confirmação do RowDataBound, o RowDeleting funciona direitinho!!!

    Não sei mais o que fazer... já tentei transformar o ButtonField em Template e continuou não funcionando.


    Alguma idéia?



    Gennari
    terça-feira, 14 de julho de 2009 12:44

Respostas

Todas as Respostas

  • Ola Paulo! 

    Pra vc exibir a mensagem de confirmação, basta vc colocar o javascript na propriedade OnClientClick. 

    Exemplo:

    Utilize um <asp:TemplateField> com um button ou imagebutton

    <asp:Button CommandName="Delete" OnClientClick="return confirm('Confirma a exclusão desse registro ?');"  />

    Apenas isso....abraçow

    Att,

    Israel Gonçalves “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Editado Israel Gonçalves terça-feira, 14 de julho de 2009 12:56 alteração do tipo de botão
    • Sugerido como Resposta Israel Gonçalves terça-feira, 14 de julho de 2009 15:55
    terça-feira, 14 de julho de 2009 12:53
  • Israel,

    Eu já tinha tentado transformar em TemplateField e não deu certo...

    Mas enfim, achei a resposta neste post:

    O problema estava na forma com criei o javascript!!!

    Ao invés de:

    "javascript:return confirm('Confirma a exclusão do registro?');"

    Tem que ser:

    "javascript:if (!confirm('Confirma a exclusão do registro?')) return false;"


    Gennari
    • Marcado como Resposta Paulo Gennari quarta-feira, 15 de julho de 2009 12:51
    terça-feira, 14 de julho de 2009 13:38
  • Eu utilizei o AJAX e funcionou, tentei muuito somente jscript e nao funcionou.

     

    <asp:TemplateField ShowHeader="False">

     

    <ItemTemplate>

     

    <asp:ImageButton ID="grdIBtnExcluir" runat="server" CausesValidation="False"

     

    CommandName="Delete" ImageUrl="~/imagens/icones/Excluir.gif" />

     

    <cc1:ConfirmButtonExtender ID="grdIBtnExcluir_ConfirmButtonExtender"

     

    runat="server" ConfirmText="Confirma a excluso do registro?" TargetControlID="grdIBtnExcluir">

     

    </cc1:ConfirmButtonExtender>

     

    </ItemTemplate>

     

    <ItemStyle Width="16px" />

     

    </asp:TemplateField>





    Vinicius Pereira Torres
    terça-feira, 21 de julho de 2009 19:22