当ajax计时器(倒计时)显示0时,调用c#函数
Call c# function when ajax timer (countdown) shows 0
我在简单的任务中遇到了大问题…在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#函数
相关文章:
- 阻止在select2单击时调用ajax
- DropDownListFor赢得't在更改时调用函数
- Javascript onclick函数会立即调用(而不是在单击时调用)
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 为什么 JS 不在滚动时调用函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- 显示指令时调用指令方法
- 如何在点击超链接时调用fullcalendar回调
- 使用setTimeout()时调用Stack
- Angular:如何在状态更改时调用scope方法
- 如何使用asp.net在客户端点击时调用java脚本
- 函数在页面加载时调用,而它只能在onclick上调用
- 每次用户键入时调用函数
- 如何在单击组件时调用函数
- 更改事件绑定's函数在页面加载时调用
- 每次数据表中的页面更改时调用一个函数
- 在创建对象时调用javascript函数
- 在映射空闲时调用maps.getBounds()为null