如何在调用定时器控件时停止回发

时间:2016-09-05 06:24:33

标签: c# asp.net ajax

我必须在我的项目上显示日期和计时器。我正在使用代码:

<asp:ScriptManager ID="sc2" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
        <asp:Timer ID="UpdateTimer" runat="server"  OnTick="UpdateTimer_Tick" Interval="1000"></asp:Timer>
        <asp:Label runat="server" ID="DateStampLabel"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

但是当我在当地跑步时。它每秒回发一次,然后定时器停止。任何纠正代码的想法。

C#代码:

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

2 个答案:

答案 0 :(得分:3)

我不确定您的代码有什么问题,但如果可以帮助您,请尝试以下代码。

take(1)

答案 1 :(得分:0)

我通过以下代码获得了示例

的.aspx:

<html>
<head>
</head>
<body>

<form id="frm" runat="server">


    <asp:ScriptManager ID="sc2" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
        <asp:Timer ID="UpdateTimer" runat="server"  OnTick="UpdateTimer_Tick" Interval="1000"></asp:Timer>
        <asp:Label runat="server" ID="DateStampLabel"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>
</form>
</body>

</html>

.aspx.cs

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

如果页面在回发期间刷新,可能是因为页面上有一些javascript错误,有时其他部分的javascript异常会破坏.NET异步回发。如果您的标签未更新,您可能需要检查Response.Write / Response.Filter事件中是否有Server.xxxPage_LoadTick,因为ajax返回您写入回复的任何内容,您可能会遇到The message received from the server could not be parsed.消息。