none
WriteMessage com Responde.Redirect RRS feed

  • Pergunta

  • Boa Tarde, seguinte,

    Trabalho com C# e Web Application.

     

    Estou em um desenvolvimento de uma página, na qual é uma avaliação.

    Ao final da avaliação eu tenho um botão CONFIRMAR!

    Segue o método:

      protected void Confirmar(object sender, EventArgs e)
      {
        try
        {     
          EnviarEmail();
          CarregarValores();      
          WriteMessage("Avaliação completada com sucesso.");
          pageFuncoes.LimparSessao(this.Session);
          Response.Redirect("~/Avaliacao/LoginConsultivo.aspx");
          
        }
        catch
        {
          WriteMessage("Não foi possível completar essa avaliação!");
        }
    
    
      }
    

     

     

    O problema está no seguinte, ao apertar o botão confirmar, deve aparecer a mensagem que foi concluido com sucesso e limpar a sessão e me redirecionar para a página do login novamente.

    O problema é que, do modo que eu estou fazendo a mensagem sequer aparece, ja redireciona para o Login sem a mensagem que foi concluido.

    E não consigo resolver de jeito nenhum, ja fiz de tudo nesse método. =/

    Alguém sabe o que pode ser?

     

     

    Obrigado !

    segunda-feira, 25 de outubro de 2010 16:02

Respostas

  • Amigo, por que vc não faz assim:

    utilize o controle do Ajax Control ToolKit chamado ConfirmButton (http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ConfirmButton/ConfirmButton.aspx)

    Adicionar o ScriptManager na sua página

    1. depois de você importar os controles pra dentro do visual studio(no site ensina como) vc irá clicar na smartTag que ira aparecer no button(aquela setinha pequena que aponta pra direita)

    2. clicar em Add Extender

    3. escolher ConfirmButtonExtender e OK

    4. edite as propriedades do controle(estao junto com as propriedades do button) clicando em cima do botão, e apertando F4 ou botao direito > properties. lá tera uma área escrita EXTENDER que tem as propriedades do controle

    5. no campo ConfirmText coloque sua mensagem: Avaliação completada com sucesso.

    download do Control ToolKit: http://ajaxcontroltoolkit.codeplex.com/, http://www.asp.net/ajaxlibrary/act.ashx)

    exemplos de html e do código:

      <asp:ScriptManager runat="server" ID="script"></asp:ScriptManager>
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
      <asp:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" 
        ConfirmText="Avaliação completada com sucesso." Enabled="True" 
        TargetControlID="Button1" >
      </asp:ConfirmButtonExtender>
      </asp:Content>
    

    código

     protected void Button1_Click(object sender, EventArgs e)
      {
        Response.Redirect("~/Avaliacao/LoginConsultivo.aspx");
      }
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    quarta-feira, 27 de outubro de 2010 15:21
  • Ola,

       Na verdade vc deve direcionar para uma pagina com a mensagem "Avaliação completada com sucesso" e dela vc redireciona para a "~/Avaliacao/LoginConsultivo.aspx  depois de X segundos

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
      <title></title>
      <meta http-equiv="REFRESH" content="5;url=<%= Server.MapPath("~/Avaliacao/LoginConsultivo.aspx") %>>">
    </head>
    <body>
      <h1>Avaliação completada com sucesso!!!</h1>
    </body>
    </html>
    
    

    protected void Confirmar(object sender, EventArgs e)
      {
        try
        {    
          EnviarEmail();
          CarregarValores();      
          pageFuncoes.LimparSessao(this.Session);
          Response.Redirect("~/Completada.html");
         
        }
        catch
        {
          WriteMessage("Não foi possível completar essa avaliação!");
        }


      }


    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 27 de outubro de 2010 15:52
    Moderador

Todas as Respostas

  • FAZ ASSIM

     EnviarEmail();
    CarregarValores();
    WriteMessage("Avaliação completada com sucesso.");
    Thread.Sleep(100);
    pageFuncoes.LimparSessao(this.Session);
    Response.Redirect("~/Avaliacao/LoginConsultivo.aspx");

    segunda-feira, 25 de outubro de 2010 17:36
  • Não funcionou mesmo com esse Thread ae..

    terça-feira, 26 de outubro de 2010 11:02
  • Mais nenhuma sugestão?
    quarta-feira, 27 de outubro de 2010 13:05
  • Amigo, por que vc não faz assim:

    utilize o controle do Ajax Control ToolKit chamado ConfirmButton (http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ConfirmButton/ConfirmButton.aspx)

    Adicionar o ScriptManager na sua página

    1. depois de você importar os controles pra dentro do visual studio(no site ensina como) vc irá clicar na smartTag que ira aparecer no button(aquela setinha pequena que aponta pra direita)

    2. clicar em Add Extender

    3. escolher ConfirmButtonExtender e OK

    4. edite as propriedades do controle(estao junto com as propriedades do button) clicando em cima do botão, e apertando F4 ou botao direito > properties. lá tera uma área escrita EXTENDER que tem as propriedades do controle

    5. no campo ConfirmText coloque sua mensagem: Avaliação completada com sucesso.

    download do Control ToolKit: http://ajaxcontroltoolkit.codeplex.com/, http://www.asp.net/ajaxlibrary/act.ashx)

    exemplos de html e do código:

      <asp:ScriptManager runat="server" ID="script"></asp:ScriptManager>
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
      <asp:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" 
        ConfirmText="Avaliação completada com sucesso." Enabled="True" 
        TargetControlID="Button1" >
      </asp:ConfirmButtonExtender>
      </asp:Content>
    

    código

     protected void Button1_Click(object sender, EventArgs e)
      {
        Response.Redirect("~/Avaliacao/LoginConsultivo.aspx");
      }
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    quarta-feira, 27 de outubro de 2010 15:21
  • Ola,

       Na verdade vc deve direcionar para uma pagina com a mensagem "Avaliação completada com sucesso" e dela vc redireciona para a "~/Avaliacao/LoginConsultivo.aspx  depois de X segundos

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
      <title></title>
      <meta http-equiv="REFRESH" content="5;url=<%= Server.MapPath("~/Avaliacao/LoginConsultivo.aspx") %>>">
    </head>
    <body>
      <h1>Avaliação completada com sucesso!!!</h1>
    </body>
    </html>
    
    

    protected void Confirmar(object sender, EventArgs e)
      {
        try
        {    
          EnviarEmail();
          CarregarValores();      
          pageFuncoes.LimparSessao(this.Session);
          Response.Redirect("~/Completada.html");
         
        }
        catch
        {
          WriteMessage("Não foi possível completar essa avaliação!");
        }


      }


    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 27 de outubro de 2010 15:52
    Moderador
  • Vou testar.

     

    Obrigado, Olavo.

    quarta-feira, 27 de outubro de 2010 15:55