这是一个有趣的问题。我有一个ASP.NET计时器(Timer1
),它应该递增一个整数变量,用于跟踪菜单中的哪个项目被选中。看看Tick事件处理程序。
'Menu_RightSide.Items(TimerMenuIndex).Selected = True`
Protected Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
Select Case TimerMenuIndex
Case 0
bindDataToChart_locationChrono()
TimerMenuIndex += 1
Case 1
BindCurrentProgressDataToChart()
TimerMenuIndex += 1
Case 2
bindDBDataToChart()
TimerMenuIndex += 1
Case Else
'Do Something else
End Select
End Sub
这似乎应该是相对简单的逻辑。我想要的是TimerMenuIndex
变量在调用Tick事件处理函数时递增1。但是,出于某种原因,它不会增加。我应该提到TimerMenuIndex
是一个全局变量。我知道Timer控件是基于AJAX的,所以当Timer刷新页面时,它不应该调用Page_Load
函数。我想不出有什么理由不起作用。我可能会遗漏一些非常明显的东西。有什么想法吗?
更新:以下是与此功能相关的Page_Load
代码:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Menu_RightSide.Items(TimerMenuIndex).Selected = True
End Sub
答案 0 :(得分:0)
发生的事情是变量在tick事件后重置为0
。
您需要声明Shared,这将使变量保持其值,并且
Shared TimerMenuIndex As Integer = 0