none
Data Grid View 2.0 C# - Como colocar uma confirmação em um <asp:buttonfield buttontype="Image"> RRS feed

  • Pergunta

  • Pessoal,

     

    Tenho um Data Grid View que possui um botão de excluir, no evento:

    OnRowCommand="FUNC_COMANDOS"

     

    Code Snippet

    <asp:buttonfield buttontype="Image" CommandName="Excluir" ImageUrl ="~/imagens/bts/excluir.gif" HeaderText="Excluir" Text="Clique aqui para cancelar o pedido" >

    <HeaderStyle BackColor="#CCCCCC" Font-Size="Smaller" />

    <ItemStyle HorizontalAlign="Center" />

    </asp:buttonfield>

     

     

     

    eu tenho o métódo citado que possui a condição:

     

    Code Snippet

    if (e.CommandName == "Excluir")

    {

    CodCli = GvPedido.DataKeys[int.Parse(e.CommandArgument.ToString())]["PEDIDOSCAB_CLIENTE"].ToString().Trim();

    CodControle = GvPedido.DataKeys[int.Parse(e.CommandArgument.ToString())]["PEDIDO_NUM_CONTROLE"].ToString().Trim();

    PedidoId = GvPedido.DataKeys[int.Parse(e.CommandArgument.ToString())]["PEDIDO_ID"].ToString().Trim();

    try

    {

    //if (ObjPedido.FUNC_DELETE_PEDIDO_PENDENTE(decimal.Parse(CodControle), decimal.Parse(CodCli)) > 0)

    if (ObjPedido.FUNC_DELETE_PEDIDO(Convert.ToInt32(PedidoId)) > 0)

    {

    ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "Box", "alert('Pedido excluido com sucesso')", true);

    FUNC_CARRGA_GRID();

    }

    else {

    ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "Box", "alert('Erro na exclusão do pedido contate o administrador')", true);

    }

    }

    catch

    {

    ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "Box", "alert('Erro na exclusão do pedido contate o administrador')", true);

    }

    }

     

     

    Como eu faço para quando este botão for clicado eu somente executar a ação caso o usuário tenha clicado no ok?

     

    Eu coloquei um atribudo no botão quando o mesmo é criado:

     

    Code Snippet

    .Attributes.Add("onclick", "BLOCKED SCRIPTreturn " + "confirm('Confirma a exclusão desta Série?')");

     

     

    Porém quando o usuário clica em ok ele parece que não chama a função do OnRowCommand="FUNC_COMANDOS"

     

    Espero que possam me ajudar

    sexta-feira, 1 de agosto de 2008 18:56

Todas as Respostas

  • Na propriedade OnClientClick do botão configure assim: javascrit:return window.confirm("Mensagem")

    sexta-feira, 1 de agosto de 2008 19:34
  •  

    Guilherme,

     

    Este tipo de controle não tem a propriedade OnclienteClick

    sexta-feira, 1 de agosto de 2008 19:36
  • Olá,

    A solução para seu problema é você incluir um IF em seu Javascript. Isto ocorreu pois o ASP.NET incluí após seu código Javascript algo como: "
    __doPostBack('ctl00$GridView1','Excluir$4')". Que nunca é executado já que você coloca um "return" antes desse código.

    Exemplo
    ============
    "if (!confirm('Confirma a exclusão desta Série??')) return false;"

    Referência
    ============
    Explicação completa sobre o problema e a solução
    ASP.NET 2.0 - GridView - Delete Button - Confirmation

    []'s

    Por favor, se a resposta foi útil, marque a como tal.
    • Sugerido como Resposta Paulo Gennari terça-feira, 14 de julho de 2009 13:33
    quarta-feira, 13 de agosto de 2008 17:42
    Moderador