Usuário com melhor resposta
UpdatePanel + Timer + Image + ashx + Só funciona na Primeira vez

Pergunta
-
Pessoal Tenho uma pagina na qual possuo um controle IMAGE do própio ASP>NET esse Image é atualizado a cada 30s através de um timer do AJAX.
Tenho o seguinte código abaixoprotected void Timer1_Tick(object sender, EventArgs e) { try { HttpContext context = HttpContext.Current; imgItem_1.ImageUrl = "~/Handler1.ashx?IdImagem=" + Request.QueryString["idN"] + "&TipoImg=0"; imgItem_1.Visible = true; } catch (Exception ex) { } }
Funcina normal o tick sempre caí no método. Porém na Segunda vez já não funciona mais o Handler1.ashx. O timer continua funcionando e caindo no método mas nao aciona o Handler1.ashx . Debugando ele passa na linha normal mas nao entra. Na primeira vez do timer funciona normal. acionando o código dentro do Handler1 mas na segunda vez não.O que pode ser?
Respostas
-
Bom dia,
Tenta isso:
Continua usando o UpdatePanel. Troca o </PostBackTrigger> do UpdatePanel por:
<asp:AsyncPostBackTrigger ControlID="TIMER ID" EventName="Tick" />
Você deve trocar o ControlID pelo ID do timer. O EventName é o tipo de evento do teu timer, que nesse caso é o Tick (num botão poderia ser OnClick por ex.)
- Sugerido como Resposta Thiag0coelho segunda-feira, 25 de fevereiro de 2013 16:48
- Editado Thiag0coelho segunda-feira, 25 de fevereiro de 2013 16:56
- Marcado como Resposta ferlindo7 segunda-feira, 25 de fevereiro de 2013 22:29
-
Gente consegui resolver e entender tudo
O fato de só funcionar uma vez é por que o navegador entendia que aquela imagem já existia e nao gerava novamente a solução foi mudar a url da imagem com numero aleatorio para ele entender que é outra imagen
string teste = DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString(); imgItem_1.Visible = true; imgItem_1.ImageUrl = "~/Handler1.ashx?IdImagem=" + Request.QueryString["idN"] + "&TipoImg=0" + "&temp=" + teste;
Obrigado a todos !!!
- Marcado como Resposta ferlindo7 segunda-feira, 25 de fevereiro de 2013 22:29
Todas as Respostas
-
-
-
Bom dia,
Tenta isso:
Continua usando o UpdatePanel. Troca o </PostBackTrigger> do UpdatePanel por:
<asp:AsyncPostBackTrigger ControlID="TIMER ID" EventName="Tick" />
Você deve trocar o ControlID pelo ID do timer. O EventName é o tipo de evento do teu timer, que nesse caso é o Tick (num botão poderia ser OnClick por ex.)
- Sugerido como Resposta Thiag0coelho segunda-feira, 25 de fevereiro de 2013 16:48
- Editado Thiag0coelho segunda-feira, 25 de fevereiro de 2013 16:56
- Marcado como Resposta ferlindo7 segunda-feira, 25 de fevereiro de 2013 22:29
-
-
Gente consegui resolver e entender tudo
O fato de só funcionar uma vez é por que o navegador entendia que aquela imagem já existia e nao gerava novamente a solução foi mudar a url da imagem com numero aleatorio para ele entender que é outra imagen
string teste = DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString(); imgItem_1.Visible = true; imgItem_1.ImageUrl = "~/Handler1.ashx?IdImagem=" + Request.QueryString["idN"] + "&TipoImg=0" + "&temp=" + teste;
Obrigado a todos !!!
- Marcado como Resposta ferlindo7 segunda-feira, 25 de fevereiro de 2013 22:29