Default.aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server">2:00:00</asp:Label>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
Default.aspx.vb
Dim timer, timer_arr() As String
timer = Label1.Text
timer_arr = timer.Split(":")
Dim seconds = Integer.Parse(timer_arr(2))
Dim minutes = Integer.Parse(timer_arr(1))
Dim hours = Integer.Parse(timer_arr(0))
If seconds = 0 And minutes = 0 And hours = 0 Then
Timer1.Enabled = False
Else
seconds = seconds - 1
End If
If (seconds < 0) Then
seconds = 59
minutes = minutes - 1
End If
If minutes < 0 Then
minutes = 59
hours = hours - 1
End If
Label1.Text = hours & ":" & minutes & ":" & seconds
期待される結果を示す上記のコード、つまり、カウントダウンタイマーが必要です。カウントダウンタイマーは、のようにクライアントにカウントダウンタイマーを表示します2:45:34
。しかし、問題は秒の値が2倍に減少していることです。2:45:34
つまり、表示する代わりに次の1秒後に、2:45:33
表示する2:45:32
などです。私の観点からすると、私は非常に混乱しています。すべてが大丈夫です。助けが必要 !!
更新しました
クライアント側のスクリプト、つまりjavascriptが別のオプションになると思いますが、オンライン試験システムのタイマーが必要です。つまり、クライアントがサーバーにリクエストを送信するたびにタイマーが作動し続ける必要があります。しかし、私がjavascriptを使用する場合、タイマー値が中断され、予期しない値が表示されます。つまり、再度初期化される可能性があります。したがって、サーバーサイドスクリプトが最適だと思います。誰か他の提案があれば、私は感謝します。!!