当ajax计时器(倒计时)显示0时,调用c#函数
本文关键字:0时 调用 函数 显示 ajax 计时器 倒计时 | 更新日期: 2023-09-27 18:05:18
我在简单的任务中遇到了大问题…在asp.net页面是多视图与两个视图,
在第一个视图中,我有ajax计时器,其计数秒从60到0。时间显示在标签上,在更新面板上。我想调用我的c#函数做一些事情,并在最后改变活动视图。
我该怎么做呢?
我试图检查Timer_tick事件,如果秒== 0,我调用函数,但它不起作用。我也试过Timer1。启用= false,但也不能正常工作。
我认为,我必须使用Javascript,但如何?我不知道在哪里,怎么……我还不懂Javascript。
这是我的Timer_Tick事件(标签上的时间显示正确)
protected void Timer1_Tick(object sender, EventArgs e)
{
Test t = (Test)Session["SelectedTest"];
if (t.Remaining.Minute == 0 && t.Remaining.Second == 0)
{
DoSomething();
}
else
{
t.Remaining= t.Remaining.AddSeconds(-1);
Label7.Text = t.Remaining.ToLongTimeString();
}
}
和DoSomething()函数:
public void DoSomething()
{
// Doing a lot of things....
MultiView1.ActiveViewIndex = 3;
}
函数Dosomething工作正常,我也有按钮调用这个函数-它的工作,但我也想调用函数如果剩余的秒== 0.
是的,我试过了。调试后我知道,我的c#函数DoSomething()正在工作-但最后,视图没有改变。调用DoSomething()后,计时器再次滴答…
我找到了js函数:
function stopTimer()
{
var timer = $find("<%=Timer1.ClientID%>")
timer._stopTimer();
}
但我不知道,我该在哪里打电话。
编辑:我看到,我的函数DoSomething()被调用了很多次。如果Timer显示为0,则函数在每个tick
中都在调用Edit2: Noob-solution:)
- 增加第二个定时器,设置Timer2。时间间隔= 9999999(或其他高)
在Timer1_Tick事件:
t。Remaining = t.Remaining.AddSeconds(-1);Label7。
if (t.Remaining.Minute == 0 && t.Remaining.Second == 1) Timer2.Interval = 1000;
- 调用Timer2_Tick中的c#函数
原因:如果Timer是UpdatePanel的触发器,你不能从Tick事件中调用c#函数