2013-05-06 98 views
0

我在我的網頁上有一個ASP.NET計時器控件。停止並重新啓動ASP.NET計時器

定時器用作UpdatePanel的觸發器。一旦加載了該面板的內容,我將在代碼中使用Timer.Enabled = false;禁用定時器。這將禁止Timer觸發Tick事件。

我想重新啓動此計時器,如果用戶希望重新運行代碼點擊按鈕。但是,如果我在按鈕單擊事件中使用Timer.Enabled = true;,則它僅在頁面回發時啓用計時器。顯然,這不是我想要的行爲。

我試圖做使用JavaScript一樣,

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

此代碼也於事無補。如果有人能幫我解決這個問題,我將不勝感激。謝謝。

回答

2

您可以很容易地使用ASP.NET計時器的這些許多客戶端網站功能。

但要注意的是這與啓動Javascript函數強調是按照慣例私人fucnctions。他們可以被作者改變,但我認爲它可以安全地使用,因爲微軟知道在提供向後兼容性方面很好。

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

我知道你所提供的信息,但正如我所說,我試圖用這種方法來啓動計時器。但是,後面的代碼中的計時器事件在頁面回發之前不會觸發。 – 2013-05-06 05:20:06

+0

@SoulSlayer我建議你試試這個。不要在服務器端禁用/啓用計時器。只需使用客戶端功能即可。這只是一個猜測,可能一旦你禁用了服務器端的定時器,你就無法從客戶端啓用它。 – 2013-05-06 05:24:02