none
Timer RRS feed

  • Pergunta

  • Boa Noite!!!

    Tenho um webcontrol que tem um timer. Uso esse webcontrol mais de uma vez na mesma pagina, e percebi que o timer so funciona em 1 deles.

    Tem alguma solucao para isso?

    Obrigado!!!

    segunda-feira, 15 de agosto de 2011 21:18

Respostas

  • Eu havia colocado o timer no WebControl, pois acreditava que poderia ter timers idenpendentes rodando, mas somente um timer do um controle rodavam. Sendo assim, eu coloquei um timer na página, e acionando metodos dos controles, e esta funcionando.

     

      <asp:UpdatePanel ID="UpdatePanel4" runat="server">
        <ContentTemplate>
          <asp:Timer ID="Timer1" runat="server" Interval="6000">
          </asp:Timer>
        </ContentTemplate>
      </asp:UpdatePanel>
    
    

      Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.wc_Conteudo_Publicidade_1.P_ConteudoRandomico = True Then
          Me.wc_Conteudo_Publicidade_1.F_MostrarConteudo()
        End If
    
        If Me.wc_Conteudo_Publicidade_2.P_ConteudoRandomico = True Then
          Me.wc_Conteudo_Publicidade_2.F_MostrarConteudo()
        End If
      End Sub
    
    

     

     

     

     

     

    terça-feira, 16 de agosto de 2011 18:03

Todas as Respostas

  • Podes explicar um pouco melhor o teu problema? Estás a falar de um timer do lado do servidor ou do lado do cliente? Podes mostrar o código que estás a utilizar?
    Paulo Morgado
    terça-feira, 16 de agosto de 2011 00:26
  • Paulo boa noite, tudo bem?

    Nos temos em um site 2 espaço para publicidade, que cada um deve alterar a publicidade de forma independente. Eu criei um webcontrole e adicionei um objeto timer, que funciona somente para um dos webcontrol.

    Eu acho que esse tipo de objeto funciona do lado do servidor, mas nao teria problema nenhum se funcionar do lado do cliente, mas nao poderia ser javascript, porque preciso acessar funcao .net para acessar o banco de dados e recuperar os dados.

    Obrigado!!!

    terça-feira, 16 de agosto de 2011 02:02
  • Olá DaviSaba,

    Se eu não me engano o funcionamento do Timer é um para cada UpdatePanel...

    Então, se vc tem diferentes WebControls com Timers, coloque cada um dentro de um UpdatePanel distinto...

    Ok?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 16 de agosto de 2011 02:08
  • Isso ja esta assim, mas debugando percebi que somente um timer de um webcontrol funciona, o outro nao funciona. Ja testei tambem fazendo webcontrol diferentes, mas mesmo assim nao funcionou.

    terça-feira, 16 de agosto de 2011 02:11
  • Acredito que o Post de um Timer esteja influenciando o Post de outro Timer...

    Já pensou em isolar cada um em uma página separada, e na página principal colocar dois IFrames?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 16 de agosto de 2011 02:23
  • Davi,

    Podes colocar aqui o código que estás a usar com o timer?


    Paulo Morgado
    terça-feira, 16 de agosto de 2011 07:15
  • Eu havia colocado o timer no WebControl, pois acreditava que poderia ter timers idenpendentes rodando, mas somente um timer do um controle rodavam. Sendo assim, eu coloquei um timer na página, e acionando metodos dos controles, e esta funcionando.

     

      <asp:UpdatePanel ID="UpdatePanel4" runat="server">
        <ContentTemplate>
          <asp:Timer ID="Timer1" runat="server" Interval="6000">
          </asp:Timer>
        </ContentTemplate>
      </asp:UpdatePanel>
    
    

      Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.wc_Conteudo_Publicidade_1.P_ConteudoRandomico = True Then
          Me.wc_Conteudo_Publicidade_1.F_MostrarConteudo()
        End If
    
        If Me.wc_Conteudo_Publicidade_2.P_ConteudoRandomico = True Then
          Me.wc_Conteudo_Publicidade_2.F_MostrarConteudo()
        End If
      End Sub
    
    

     

     

     

     

     

    terça-feira, 16 de agosto de 2011 18:03
  • Show! Parabéns!

     


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 16 de agosto de 2011 18:08
  • Não me parece que fosse a intenção inicial do teu código, Davi. Agora tens de declarar independentemente um timer cada vez que usas uma instância do teu controlo.

    Devo confessar que desconhecia este componente (uso sempre o meu próprio código cliente), mas, pelo que conheço da infra-estrutura de web forms, deve haver uma forma de fazer isso.

    Quando tudo mais falha, debug e view source são teus amigos. Gosto muito do IE9 e do VS para isto.

    Só mais uma nota. É muito importante saber o que corre quando e onde - não há aqui magia. Uma vez "despejado" o HTML para o browser, o servidor terminou o seu serviço e qualquer timer que estivesse a correr no servidor não teria qualquer efeito no browser. O que este componente faz é gerar código cliente para no intervalo especificado fazer uma chamada (callback) ao servidor.


    Paulo Morgado
    terça-feira, 16 de agosto de 2011 23:19