2013-01-07 118 views
0

有人可以告訴我爲什麼這段代碼不工作。我猜這是因爲沒有回發射擊。我如何啓用回發?我試圖啓用一個計時器,觸發一個回傳並運行一個方法(在這裏簡化)。我需要在.NET 2.0中實現它,所以不能使用UpdatePanel或Ajax Timer。system.timers.timer不會導致回發

輸出是;

頁面加載

計時器滴答

my_method

但標籤不轉可見。

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     System.Diagnostics.Trace.WriteLine("Page Load"); 
     System.Timers.Timer timer = new System.Timers.Timer(); 
     timer.Interval = 5000; 
     timer.Enabled = true; 
     timer.Start(); 
     timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 



    } 
    protected void timer_Elapsed(object sender, EventArgs e) 
    { 
     System.Diagnostics.Trace.WriteLine("Timer Tick"); 
     my_method(); 
    } 


    protected void my_method() 
    { 
     System.Diagnostics.Trace.WriteLine("my_method"); 
     Label1.Visible = true; 
    } 

} 

回答

3

定時器正在舊頁面的舊丟棄實例上運行。這個實例仍然在內存中,但已經執行了Render階段,並且永遠不會再使用它。

要獲得回傳,您需要使用Ajax計時器或純JavaScript。

1

定時器正在服務器上觸發。客戶端已經擁有該頁面,並且不會在客戶端(如javascript)觸發新請求時自動請求更新;一旦發生這種情況,將會呈現新版本的頁面。

您將需要在JavaScript方面實現一些功能來觸發事件以查找更新的信息,然後它可以根據需要更新它所具有的DOM。

相關問題