none
Como disparar um Confirm em JavaScript DEPOIS de uma condição em um evento de botão asp server side ter sido satisfeita? RRS feed

  • Pergunta

  • Boa tarde gente, tudo bem?

    Bom estou com situação um pouco complicada nas mãos, preciso que um confirm apareça para quando o usuario clica em um botão asp, até ai tudo bem, o problema é que existe uma condição para isso acontecer ex:

    protected void btnConfirmar_Click(object sender, EventArgs e)
    {
    	if(condicao 1)
    	{
      		MOSTRA O CONFIRM
    		codigo...
    	}
    	else
    	{
    		não mostra o confirm e segue o codigo...
    	}
    }

    alguém tem ideia se isso é possível?

    Adicionar um confirm apos a verificação de uma condição?


    segunda-feira, 15 de abril de 2013 19:37

Respostas

  • Você vai pode fazer assim

    <form id="form1" runat="server">
        
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            <input type="hidden" name="OK" id="OK" />
        </form>

    no evento click

    protected void Button1_Click(object sender, EventArgs e)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "",
                            "<script type=\"text/javascript\">" +
                            "var result = confirm(\"Confirma?\");" +
                            "if(result){"+
                            "document.getElementById(\"OK\").value =\"s\";"+
                            "document.forms[\"form1\"].submit();"+
                            "}"+
                            "</script>"
                            );
            }

    no form_load

    protected void Page_Load(object sender, EventArgs e)
            {
                //clicou em ok
                if (Request["OK"] =="s")
                {
                    //sua logica de continuacao
                }
            }


    terça-feira, 16 de abril de 2013 14:46
    Moderador
  • Boa tarde gente, tudo bem?

    Bom estou com situação um pouco complicada nas mãos, preciso que um confirm apareça para quando o usuario clica em um botão asp, até ai tudo bem, o problema é que existe uma condição para isso acontecer ex:

    protected void btnConfirmar_Click(object sender, EventArgs e)
    {
    	if(condicao 1)
    	{
      		MOSTRA O CONFIRM
    		codigo...
    	}
    	else
    	{
    		não mostra o confirm e segue o codigo...
    	}
    }

    alguém tem ideia se isso é possível?

    Adicionar um confirm apos a verificação de uma condição?

    A forma mais fácil de fazer isso seria chamando um método javascript pelo code behind dentro dessa condição. Nesse método chame o confirm e salve o resultado (em um asp:HiddenField por exemplo). Depois, no código c#, recupere esse hidden field e descubra se ele confirmou ou cancelou.

    Bem, é isso. 

    Se tiver dúvidas é só perguntar e se ajudou, por favor, clique em marcar como resposta. Abraço


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh


    segunda-feira, 15 de abril de 2013 20:22

Todas as Respostas

  • Boa tarde Felipe,

    pode fazer assim dentro da condição. Mas não vai conseguir dar confirme e continuar o código, aplicação web é diferente.

    ClientScript.RegisterStartupScript(this.GetType(), "",
                            "<script type=\"text/javascript\">" +
                            "var result = confirm(\"Confirma?\");" +
                            "</script>"
                            );

    segunda-feira, 15 de abril de 2013 20:03
    Moderador
  • Boa tarde gente, tudo bem?

    Bom estou com situação um pouco complicada nas mãos, preciso que um confirm apareça para quando o usuario clica em um botão asp, até ai tudo bem, o problema é que existe uma condição para isso acontecer ex:

    protected void btnConfirmar_Click(object sender, EventArgs e)
    {
    	if(condicao 1)
    	{
      		MOSTRA O CONFIRM
    		codigo...
    	}
    	else
    	{
    		não mostra o confirm e segue o codigo...
    	}
    }

    alguém tem ideia se isso é possível?

    Adicionar um confirm apos a verificação de uma condição?

    A forma mais fácil de fazer isso seria chamando um método javascript pelo code behind dentro dessa condição. Nesse método chame o confirm e salve o resultado (em um asp:HiddenField por exemplo). Depois, no código c#, recupere esse hidden field e descubra se ele confirmou ou cancelou.

    Bem, é isso. 

    Se tiver dúvidas é só perguntar e se ajudou, por favor, clique em marcar como resposta. Abraço


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh


    segunda-feira, 15 de abril de 2013 20:22
  • Boa tarde gente, tudo bem?

    Bom estou com situação um pouco complicada nas mãos, preciso que um confirm apareça para quando o usuario clica em um botão asp, até ai tudo bem, o problema é que existe uma condição para isso acontecer ex:

    protected void btnConfirmar_Click(object sender, EventArgs e)
    {
    	if(condicao 1)
    	{
      		MOSTRA O CONFIRM
    		codigo...
    	}
    	else
    	{
    		não mostra o confirm e segue o codigo...
    	}
    }

    alguém tem ideia se isso é possível?

    Adicionar um confirm apos a verificação de uma condição?

    A forma mais fácil de fazer isso seria chamando um método javascript pelo code behind dentro dessa condição. Nesse método chame o confirm e salve o resultado (em um asp:HiddenField por exemplo). Depois, no código c#, recupere esse hidden field e descubra se ele confirmou ou cancelou.

    Bem, é isso. 

    Se tiver dúvidas é só perguntar e se ajudou, por favor, clique em marcar como resposta. Abraço


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh


    Obrigado pela resposta Evandro.

    Mas sobre criar o metodo javascript no code behind eu teria que criar o mesmo dentro da condição do evento disparado né? (no caso o click do botão) assim chamaria o confirm, mas e apos o usuário clicar em um dos botões da janela de confirm, como eu iria chamar um evento no code behind novamente para conseguir seguir com a aplicação?

    porque apesar de ainda estar iniciando na web, pela natureza dessas aplicações eu sei que não é possível fazer isso por exemplo:

    Evento_OnClick()
    
    {
    
     if(condicao)
    
     {
    
       <codigo JS para chamar o confirm>
       ...
       //continuação caso o usuário tenha clicado em OK
    
     }	
    
    }

    ou estou enganado e tem alguma maneira de fazer isso? por que pelo o que eu entendi, vc disse pra criar dentro do evento do click do botão um codigo javascript que já chamaria o confirm e criar um hidden field para salvar o resultado do click, mas como faço isso? e melhor como iria tratar o resultado vindo do javascript sendo que preciso que seja no mesmo evento? ou no máximo em um evento disparado em seguida do click do confirm?

    Desde já agradeço


    terça-feira, 16 de abril de 2013 13:34
  • Você vai pode fazer assim

    <form id="form1" runat="server">
        
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            <input type="hidden" name="OK" id="OK" />
        </form>

    no evento click

    protected void Button1_Click(object sender, EventArgs e)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "",
                            "<script type=\"text/javascript\">" +
                            "var result = confirm(\"Confirma?\");" +
                            "if(result){"+
                            "document.getElementById(\"OK\").value =\"s\";"+
                            "document.forms[\"form1\"].submit();"+
                            "}"+
                            "</script>"
                            );
            }

    no form_load

    protected void Page_Load(object sender, EventArgs e)
            {
                //clicou em ok
                if (Request["OK"] =="s")
                {
                    //sua logica de continuacao
                }
            }


    terça-feira, 16 de abril de 2013 14:46
    Moderador
  • Você vai pode fazer assim

    <form id="form1" runat="server">
        
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            <input type="hidden" name="OK" id="OK" />
        </form>

    no evento click

    protected void Button1_Click(object sender, EventArgs e)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "",
                            "<script type=\"text/javascript\">" +
                            "var result = confirm(\"Confirma?\");" +
                            "if(result){"+
                            "document.getElementById(\"OK\").value =\"s\";"+
                            "document.forms[\"form1\"].submit();"+
                            "}"+
                            "</script>"
                            );
            }

    no form_load

    protected void Page_Load(object sender, EventArgs e)
            {
                //clicou em ok
                if (Request["OK"] =="s")
                {
                    //sua logica de continuacao
                }
            }


    Olá Welington, obrigado pela a resposta.

    Deu certinho cara ^^ eu testei inicialmente e não tava dando, mas suspetei de uma coisa, estava usando updatepanel ai retirei o mesmo e deu certo, mas pesquisando um pouco mais vi que era possivel usar com updatepanel era só trocar o metodo ClientScript.RegisterStartupScript para um do scriptmanager ficando assim o evento do botão:

        protected void btnpnConfirmarReserva_Click(object sender, EventArgs e)
        {
          if (lblpnQuantidadeLeitos.Text != "0")
            {
                string script = "var result = confirm(\"Confirma?\");" +
                            "if(result){" +
                            "document.getElementById(\"VerificaTodosLeitosPreenchidos\").value =\"s\";" +
                            "document.forms[\"form1\"].submit();" +
                            "}";
                ScriptManager.RegisterStartupScript(btnpnConfirmarReserva, btnpnConfirmarReserva.GetType(), "",
                              script, true);
                mpeQuarto.Show();
            }
    
        }

    Muito obrigado, você me salvou xD

    terça-feira, 16 de abril de 2013 19:56