2013-05-06 3 views
0

У меня есть элемент управления ASP.NET Timer на моей веб-странице.Остановка и перезапуск ASP.NET Timer

Таймер используется как триггер для UpdatePanel. Как только содержимое этой панели будет загружено, я отключу таймер, используя Timer.Enabled = false; в коде. Это отключает таймер от включения события Tick.

Я хочу перезапустить этот таймер, если пользователь хочет повторно запустить код нажатием кнопки. Однако, если я использую Timer.Enabled = true; в событии нажатия кнопки, он активирует таймер только при пересылке страницы. Очевидно, это не то поведение, которое я бы хотел.

Я попытался сделать то же самое с помощью JavaScript,

var timer = $find('<%=TimerAH.ClientID %>'); 
timer._startTimer(); 
//timer.set_enabled(true); 

Этот код также не помогает. Буду признателен, если кто-то поможет мне решить эту проблему. Благодарю.

ответ

2

У вас есть много функций сайта-клиента для таймера ASP.NET, который вы можете легко использовать.

Но будьте осторожны, что функция Javascript, которые начинаются с подчеркивания являются частные fucnctions по соглашению. Они могут быть изменены автором, но я думаю, что он безопасен для использования, поскольку Microsoft знает, что это хорошо для обеспечения обратной совместимости.

Controlling the ASP.NET Timer Control with JavaScript

var timer = $find(‘<%= Timer1.ClientID %>’); 

    //returns the timer’s interval in milliseconds: 
    var waitTime = timer.get_interval;  

    //sets the timer’s interval to 5000 milliseconds (or 5 seconds): 
    timer.set_interval(5000);  

    //returns whether or not the timer is enabled: 
    var isTimerEnabled = timer.get_enabled();  

    //disables the timer: 
    timer.set_enabled(false);  

    //starts the timer: 
    timer._startTimer();  

    //stops the timer: 
    timer._stopTimer(); 
+0

Я в курсе той информации, которую вы предоставили, но, как я уже говорил, я попытался с помощью этого метода, чтобы запустить таймер. Тем не менее, событие таймера в коде позади не срабатывает до тех пор, пока страница не будет отложена. –

+0

@SoulSlayer Я предлагаю вам попробовать это. Dont отключить/включить таймер на стороне сервера. Просто используйте функции клиентской стороны. Это просто предположение, может быть, когда вы отключите таймер на стороне сервера, вы не сможете включить его с клиентской стороны. –

Смежные вопросы