做ASP.NET读秒器的实验时,明明按照老师说的方法做了,但是运行时只到1就停止了。
源代码如下- protected void Page_Load(object sender, EventArgs e)
- {
-
- Label1.Text = "0";
- Timer1.Enabled = false;
-
-
-
- }
- protected void Timer1_Tick(object sender, EventArgs e)
- {
- int i = (Convert.ToInt16(Label1.Text));
- i = i + 1;
- Label1.Text = i.ToString();
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- Timer1.Enabled = true;
- }
- protected void Button2_Click(object sender, EventArgs e)
- {
- Timer1.Enabled = false;
- }
复制代码 后来我终于发现了原因,原来是Page_Load事件没加if (!IsPostBack)判断语句,加上就好了
最终代码如下:aspx文件
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="7-2.aspx.cs" Inherits="_7_2" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <asp:UpdatePanel ID="UpdatePanel1" runat="server">
- <ContentTemplate>
- <asp:ScriptManager ID="ScriptManager1" runat="server">
- </asp:ScriptManager>
- <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
- </asp:Timer>
- <asp:Label ID="Label1" runat="server" Text="Label" Font-Bold="True"
- Font-Names="宋体" Font-Size="Larger"></asp:Label>
- <br />
- </ContentTemplate>
- </asp:UpdatePanel>
- <div>
-
- <asp:Button ID="Button111" runat="server" onclick="Button1_Click" Text="开始" />
- <asp:Button ID="Button222" runat="server" onclick="Button2_Click" Text="暂停" />
-
- </div>
- </form>
- </body>
- </html>
复制代码
aspx.cs代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Timers;
- public partial class _7_2 : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- Label1.Text = "0";
- Timer1.Enabled = false;
- }
-
-
- }
- protected void Timer1_Tick(object sender, EventArgs e)
- {
- int i = (Convert.ToInt16(Label1.Text));
- i = i + 1;
- Label1.Text = i.ToString();
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- Timer1.Enabled = true;
- }
- protected void Button2_Click(object sender, EventArgs e)
- {
- Timer1.Enabled = false;
- }
- }
复制代码 记录一下!
(来自 ASP.NET应用开发实例教程 卢守东 清华大学出版社 附录A 实验指导 实验七 第二个)
|