好的,我可以使用计时器异步更新我的页面标签。问题是标签总是同时更新,而我希望每个标签按顺序更新。
这是我的aspx:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<asp:UpdatePanel runat="server" id="UpdatePanel1"
UpdateMode="Conditional">
<contenttemplate>
<asp:Timer id="Timer1" runat="server"
Interval="5000"
OnTick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="Label1" runat="server" >Label1</asp:Label>
<asp:Label ID="Label2" runat="server" >Label2</asp:Label>
</contenttemplate>
</asp:UpdatePanel>
</asp:Content>
我的代码隐藏:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
public partial class _Default : Page
{
public int counter = 0;
protected void Timer1_Tick(object sender, EventArgs e)
{
counter++;
System.Diagnostics.Debug.WriteLine("Counter: " + counter);
if (counter == 1)
{
Label1.Text = "<font color='green'>Started</font>";
UpdatePanel1.Update();
}
if (counter == 2)
{
Label2.Text = "<font color='green'>Started</font>";
UpdatePanel1.Update();
}
}
}
在尝试了几个例子后,我决定问这里,看看我是否遗漏了一些明显的东西。不知怎的,我的计数器变量被重置为0,这告诉我整个页面可能正在重新运行每个tick而不仅仅是Timer1_Tick方法。
答案 0 :(得分:0)
counter == 1
也增加counter
的子句,因此在子句的末尾counter
= 2,因此另一个条件也是如此。
不要在counter
条款中增加counter == 1
。