首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教一个Timer有关问题,为什么小弟我的这个没效果,看代码

2012-02-21 
请问一个Timer问题,为什么我的这个没效果,看代码VB.NET codePrivate Sub Page_Load(ByVal sender As Syste

请问一个Timer问题,为什么我的这个没效果,看代码

VB.NET code
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load            lblResult.Text = DateTime.Now.ToString()            Dim timer As System.Timers.Timer = New System.Timers.Timer            timer.Interval = 1000            AddHandler timer.Elapsed, AddressOf OnTimeEvent            timer.Enabled = True        End IfEnd Sub    Private Sub OnTimeEvent(ByVal source As Object, ByVal e As System.Timers.ElapsedEventArgs)        lblResult.Text = DateTime.Now.ToString()    End Sub


为什么aspx上的lblResult没有变化.不会一秒一秒的往前跳??

[解决办法]
你是在Page_Load里面定义的一个局部的timer,当过程结束的时候,你的timer就释放了。所以就不会再起作用了。你可以定义一个全局的timer。或者在页面上拖一个全局的timer。
[解决办法]
aspx中timer的定时功能一般是用在global.asax 中的 Application_OnStart 事件过程中定义计时器,定时执行某件任务

如果你是页面中即使用了timer,进行事件响应的时候因为服务器端事件,造成整个页面刷新,定时器没有任何意义,
要在页面定时,可以使用javascript的
window.setTimeout或者setInteval来实现效果要好

如:
<div id="result"></div>
<script>
var value="1";
function usertimer()
{
document.getElementById("result").innerHTML="当前值为"+value;
value=value+1;
if(value<100)
{
window.setTimeout("usertimer()",1000);间隔一秒钟调用该函数
}

}
</script>

热点排行