问题描述
以前我用过Timer控件做过动态时间显示,页面是间隔刷新时间显示随之改变的。最近重新用到这个控件,包括用下面这种方法,都莫名其妙地失效了。打开页面并无刷新,只有手动刷新时间才会变,也就是说Timer已经不工作了。请求大神帮忙解决!谢谢usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Text.RegularExpressions;publicpartialclassWebForm1:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){TextBox1.Text=DateTime.Now.ToString();TextBox1.ReadOnly=true;//设置为只读}protectedvoidTextBox1_TextChanged(objectsender,EventArgse){//实例化timer,使得间隔为1000msSystem.Timers.Timert=newSystem.Timers.Timer(3000);t.Elapsed+=newSystem.Timers.ElapsedEventHandler(refreshTime);t.AutoReset=true;//设置是执行一次(false)还是一直执行(true);t.Enabled=true;//是否执行System.Timers.Timer.Elapsed事件;}publicvoidrefreshTime(objectsource,System.Timers.ElapsedEventArgse){TextBox1.Text=DateTime.Now.ToString();}
解决方案
解决方案二:
asp.net中不能使用timer,因为这是服务器端代码。应该用js的timer
解决方案三:
撸主,你的代码运行在桌面应用程序、windows服务等都是ok的。System.Timers.Timer是在服务器端执行的,客户端页面不刷新,页面时间是不会改变的。
解决方案四:
UpdatePanel+Timer这玩意也太给服务器压力了,放弃吧,没啥好处