【问题标题】:Using a timer to move between Views in a MultiView control使用计时器在 MultiView 控件中的视图之间移动
【发布时间】:2017-01-30 17:05:01
【问题描述】:

我正在尝试让计时器在 MultiView 控件中的 3 个视图之间移动,这是我正在使用的代码:

Protected Sub Timer1_Tick(sender As Object, e As EventArgs) Handles  Timer1.Tick
    Dim activeView As String
    activeView = MultiView1.GetActiveView().ID



    If activeView = "View1" Then
        MultiView1.SetActiveView(View2)
    End If

    If activeView = "View2" Then
        MultiView1.SetActiveView(View3)
    End If

    If activeView = "View3" Then
        MultiView1.SetActiveView(View1)
    End If


End Sub

在页面加载时,我将 MultiView 控件设置为 View1 (MultiView1.SetActiveView(View1)) 页面加载正确,数据(从 SQL 服务器中提取)可见。在 timer1 上的第一个刻度后,第二个视图再次出现,显示正确的数据。然后我看不到浏览器上的重新加载按钮按计时器间隔运行,但是我从来没有看到 View3 或返回 View1

在有人建议我将 If 语句构建为 If、ElseIf、EndIf 之前,但我将其分解为单独的 If 语句以查看是否有帮助。

没有。

希望有人能帮忙

干杯

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    您是否尝试过使用中断来调试您的代码,尝试在If...End If 块中放置一个中断并观察它是否可以访问。 您可能为视图设置了不同的 ID,或者某些 cASE 不匹配。我会建议,而不是比较视图的 ID 字符串,通过MultiView1.ActiveViewIndex 比较视图索引是安全的,这将只返回一个比较安全的整数。 希望它会奏效。

    【讨论】:

    • 感谢您的建议,经过进一步调查,结果发现是计时器没有通过视图进行。我在 if 语句中尝试了一个简单的 label.text 并且它一直到第二个刻度然后没有进展。
    【解决方案2】:

    有时我想知道我是否应该在没有看护人的情况下被释放。

    我发现视图或 label.text 更改没有进行的原因。我已经在 page_load 中设置了启动信息,因此即使计时器正在触发,它也在执行 page_load,默认返回原始数据。

    抱歉浪费了您的时间。

    我要慢慢地用头撞墙,直到它不再疼,然后再回到我的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多