2014-02-15 14 views
5

Ich verwende die AJAX-Timer-Steuerelement in einem Update-Panel.ASP.NET Timer funktioniert nur im Debug-Modus

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick"></asp:Timer>    
     <asp:Label ID="Label1" runat="server" Text=""></asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Der Timer sollte das Label jede Sekunde mit der aktuellen Datetime aktualisieren.

protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     Label1.Text = DateTime.Now.ToString(); 
    } 

Alles funktioniert im Debug-Modus in Ordnung, aber wenn ich die Seite ohne Debugger (STRG + F5) ausführen oder wenn ich die Seite auf meinem Server implementieren die Zeitgeberablaufstatusbit nicht.

Aber wenn ich "debug = true" zur web.config hinzufügen, funktioniert alles gut. Sogar auf meinem Server.

Internet Explorer löst die Ausnahme "Objekt unterstützt diese Aktion nicht" in ScriptResource.axd.

Wie kann ich dieses Problem lösen?

EDIT: Ich denke, ich habe es gelöst.

Ich weiß nicht, warum, aber zwei Dinge können dieses Problem lösen:

  • ein Script anstelle eines ToolScriptManager Mit
  • die ToolScriptManager Verwendung mit CombineScripts = "false"

Ich habe keine Ahnung, ob das ein Bug ist oder nicht.

Vielleicht kann jemand es erklären.

Antwort

0

Das funktionierte für mich.

Using the ToolScriptManager with CombineScripts="false"