GARANTIR DESCONTO

Fórum Redirecionando para outra página em uma nova janela - Response.Redirect #4496

13/04/2009

0

Pessoal;   Estou com o seguinte proglema:   Tenho uma página onde possuo um grid com diversas colunas, entre elas uma coluna com botões para que sejam gerados boletos em outra página.   Quando o usuário clicar em gerar boleto, farei uns cálculos e pegarei agumas informações contidas no grid para enviar para a página que irá gerar o boleto, via URL.   A minha dúvida é a seguinte: como faço para enviar esses dados, via URL, utilizando Response.Redirect  para página de destino em uma nova janela?   Para enviar os dados utilizo uma variável que conterá os dados que enviarei:   Response.Redirect("http://www.boleto.com.br/boleto.asp" & vQueryString) Me disseram que poderia fazer assim: Response.Redirect("http://www.boleto.com.br/boleto.asp" & vQueryString, "target='_blank'")   Testei e não funcionou.   Indemberge
Indemberge Santos

Indemberge Santos

Responder

Posts

13/04/2009

Fabio Mans

Bom dia Indemberge   O que você quer fazer não é possível, nõ exist Response Redirect para outra tela vou dar uma sugestão no evento RowDataBound do Grid você coloca um link para abrir um PopUp, nesta página você faz o cálculos e depois redireciona para boleto.asp   O RowDataBoud vai montar linha por linha o link do PopUp.   Caso precise mandar algum dado para o popup também é possível.   Veja os códigos abaixo.       protected void gvwBoleto_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {                                        string idCliene;             //Valor que você vai passar para o popup, pode ser o ID do seu registro             //0 é o valor da minha coluna, veja a sua.
            string dados = vQueryString);
                        e.Row.Cells[0.Text =
                "<a href=\"#\"><img src=\"Imagens/CadFup.gif\" title=\"Gerar Boleto\" border=\"0\" onclick=\"javascript:carregabrw('"+dados+"');\"></a>";
            e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
        }
    }
    ========================================================== Função JavaScript para abrir o PopUp   <script  language="javascript" type="text/javascript">
           
            function carregabrw(Itau)
            {
                window.open('Boleto.aspx?Chave=' + Itau, 'Boleto', 'toolbar=yes,menubar=yes,resizable=yes,status=no,scrollbars=yes,width=675,height=485');
            }
       
    </script> ===========================================================   Caso não queira utilizar o exemplo acima veja outra maneira.       string strURL = "abc.aspx"
Response.Write("<script language=javacsript>")
Response.Write("window.open('" + @strURL + "','width=800,height=500,scrollbars=yes,resizable= yes,left=20,top=20');")
Response.Write("</script>")         Espero ter ajudado.  
Responder

Gostei + 0

13/04/2009

Indemberge Santos

Fabio;   Optei pela segunda opção, pois estou com o código todo pronto, só necessito abrir o boleto em outra janela, fiz dessa forma:   'A string de conexão e as variáveis que preciso enviar vQueryString = "http://www.boleto.com.br/boleto.asp" & "?cod1=" & vCPF & "&cod2=" & vValorTotal & "&cod3=" & vVencimento & "&cod4=" & vCod4 & "&cod5=" & vCod5 & "&cod6=" & vCod6 & "&cod7=" & vCod7 & "&cod8=" & vCod8 & "&cod9=" & vCod9 & "&cod10=" & vCod10 & "&cod11=" & vCod11 & "&cod12=" & vNome   Response.Write("<script language=javacsript>")
'No seu código tinha um @ antes da variável, aqui eu tirei   Response.Write("window.open('" & vQueryString & "','width=800,height=500,scrollbars=yes,resizable= yes,left=20,top=20');")
Response.Write("</script>")
Só que após executar o código, não funcionou.   Coloquei no code behind, aqui eu utilizo VB.Net.   Indemberge    
Responder

Gostei + 0

13/04/2009

Fabio Mans

Não funciona, você tem que abrir o PopUp antes.
Responder

Gostei + 0

13/04/2009

Indemberge Santos

Não entendi.   Como assim abrir o PopUp antes?   Indemberge
Responder

Gostei + 0

13/04/2009

Fabio Mans

E que erro está ocorrendo quando você executa o código abaixo?



'A string de conexão e as variáveis que preciso enviar vQueryString = "http://www.boleto.com.br/boleto.asp" & "?cod1=" & vCPF & "&cod2=" & vValorTotal & "&cod3=" & vVencimento & "&cod4=" & vCod4 & "&cod5=" & vCod5 & "&cod6=" & vCod6 & "&cod7=" & vCod7 & "&cod8=" & vCod8 & "&cod9=" & vCod9 & "&cod10=" & vCod10 & "&cod11=" & vCod11 & "&cod12=" & vNome   Response.Write("<script language=javacsript>")
'No seu código tinha um @ antes da variável, aqui eu tirei   Response.Write("window.open('" & vQueryString & "','width=800,height=500,scrollbars=yes,resizable= yes,left=20,top=20');")
Response.Write("</script>")
Só que após executar o código, não funcionou.
Responder

Gostei + 0

14/04/2009

Indemberge Santos

Segue abaixo a Mensagem de erro:   Erro: Sys.WebForms.PageRequesManagerPerserErrorException: A mensagem recebida do servidor não pode ser analisada. Causas comuns desse erro são quando a resposta é modificada por chamadas para Response.Write(), filtros de resposta, HttpModules ou quando o restreamento de servidor está habilitado.
Detalhes: Erro ao analisar próximo de '<script language=jav'. Código: 0
Eu fiz várias tentativas e o erro persiste.    
Responder

Gostei + 0

14/04/2009

Fabio Mans

Tem Ajax nesta página?
Responder

Gostei + 0

14/04/2009

Indemberge Santos

Sim.   AjaxToolkit.
Responder

Gostei + 0

15/04/2009

Fabio Mans

Retira tudo referente ao Ajax e tenta novamente.
Responder

Gostei + 0

15/04/2009

Indemberge Santos

A página foi toda montada com base no Ajax e já está no ar, falta apenas resolver a questão de abrir o boleto em outra janela, portanto preciso de uma solução que não seja necessário a mudança do layout existente.
Responder

Gostei + 0

15/04/2009

Fabio Mans

Então utilize o PopUp como mostrei no início, e desta página nova você faz os cálculos e Depois o Response.

Fabio
Responder

Gostei + 0

17/04/2009

Devmedia

Indemberge,
a resposta do consultor solucionou a sua dúvida? Podemos encerrar o chamado?
Responder

Gostei + 0

22/04/2009

Indemberge Santos

Não.   Fiz da maneira que o consultor me orientou, contudo não funcionou, como você pode ver no histórico do chamado.    
Responder

Gostei + 0

22/04/2009

Devmedia

Indemberge,
o consultor precisa saber em que não deu certo para que ele possa desenvolver uma solução para o seu problema.
Responder

Gostei + 0

23/04/2009

Fabio Mans

Vou mostrar como fiz em um projeto parecido com o seu, porém utilizando o ItauShopLine.   Para cada linha do meu grid eu utilizo o código abaixo. Este código vai criar um link na coluna 4 do grid que quando o usuário clicar ele vai abrir um PopUp. Perceba que eu abro um arquivo chamado Boleto.aspx, é o que você tem que fazer, em seguida você faz os cálculos que precisa nesta página (Boleto) e ai sim você direciona com o Response.Redirect, para fazer o cálculo você precisa passar para esta página os dados, faça por QueryString.       <script  language="javascript" type="text/javascript">
           
            function carregabrw(Itau)
            {
                window.open('Boleto.aspx?Chave=' + Itau, 'Boleto', 'toolbar=yes,menubar=yes,resizable=yes,status=no,scrollbars=yes,width=675,height=485');
            }
       
    </script>         ========================================== protected void gvwBoleto_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {                         
            //J0056043390001100000002210
            string dados;
            criptoClass _ojb = new criptoClass();
            dados =
                _ojb.geraDados("J0056043390001100000002210", NrBoleto, txtValor.Text, "Domínio: " + dominio, "MVGRGX1452092038", nome,
                               tipodocumento,
                               documento, endereco, bairro, cep, cidade, estado, vencimento, "", dominio, email, completo);
                                    e.Row.Cells[4].Text =
                "<a href=\"#\"><img src=\"Imagens/CadFup.gif\" title=\"Gerar Boleto\" border=\"0\" onclick=\"javascript:carregabrw('"+dados+"');\"></a>";
            e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
        }
    }   ==============================================     No Page_Load do Boleto.aspx você irá recupear os valores e fazer o cálculo.     protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["Chave"] != null)
        {
            DC.Value = Request.QueryString["Chave"];
        }
    }     Espero ter ajudado.    
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar