Avatar billede skindbeni Nybegynder
29. september 2007 - 15:21 Der er 6 kommentarer og
1 løsning

AJAX, automatisk update efter antal sekunder

Hej.

Jeg roder med at få en del af min side til automatisk at opdatere efter et interval af sekunder, fx. hver 20. sekund.


Jeg har på min sides aspx fil indsat følgende:

<asp:Timer ID="Timer1" runat="server" Interval="20000" OnTick="Timer1_Tick" >
</asp:Timer>

<asp:UpdatePanel ID="updatepanel1" runat="server">
  <ContentTemplate>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  </ContentTemplate>
</asp:UpdatePanel>

I min codebehind fil har jeg følgende:

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  Label1.Text = Now().ToString
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  label1.text = Now().ToString
End Sub

Når siden indlæses, skrives rigtigtnok dato/tid for indlæsningen, men der sker intet hvert 20. sekund som ønsket.

Hvor hopper kæden af for mig? ;o)
Avatar billede neoman Novice
29. september 2007 - 15:28 #1
http://asp.net/AJAX/Documentation/Live/overview/UsingTimerControlTutorial.aspx

Eftersom din timer er placeret udenfor  UpdatePanel'et, så skal du definere den som trigger for panelet.

Bemærk at PageLoad gennemløbes også ved async postback , så du behøver egentligt ikke at  definere din Label1.text to steder.
Avatar billede neoman Novice
29. september 2007 - 15:56 #2
Og for at gøre forvirringen total, så kan du alternativt også skrive:

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  Label1.Text = Now().ToString
  updatepanel1.Update
End Sub
Avatar billede dr_chaos Nybegynder
29. september 2007 - 17:17 #3
Du kan gøre det nemmere med:
<asp:Timer ID="Timer1" runat="server" Interval="20000" OnTick="Timer1_Tick" >
</asp:Timer>

<asp:UpdatePanel ID="updatepanel1" runat="server" UpdateMode="Conditional">
  <ContentTemplate>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  </ContentTemplate>
<Triggers>
  <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
Avatar billede skindbeni Nybegynder
29. september 2007 - 19:15 #4
Tak for det. Jeg vil belønne jer begge.
Avatar billede dr_chaos Nybegynder
29. september 2007 - 20:51 #5
svar :)
Avatar billede neoman Novice
30. september 2007 - 01:32 #6
pas
Avatar billede skindbeni Nybegynder
30. september 2007 - 09:57 #7
Jeg går ud fra, at du melder pas, fordi du ikke mener, at du vil have point. ;o)
Er det anderledes må du sige til.
Fortsat god weekend - og tak for hjælpen alligevel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester