2013-02-27 44 views
1

註冊客戶端腳本我想在定時器的Tick事件註冊腳本,但什麼也沒發生,在定時器的Tick事件

protected void UpdateTimer_Tick(object sender, EventArgs e) 
     { 
       ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "ShowDialog()", true); 
     } 

試圖ScriptManager.RegisterStartupScript很好,但它不工作。嘗試調用簡單的警報,但不工作。

+0

你得到一個錯誤?你有沒有進入Tick方法? – 2013-02-27 13:29:56

+0

@ToonCasteele沒有錯誤,是的它進入Tick方法。 – Rishi 2013-02-27 13:31:14

回答

2

RegisterClientScriptBlock只有在第一次加載頁面時纔會起作用。在服務器上的後臺線程上調用時,您不可能期望它能夠工作。

您需要註冊一個啓動計時器客戶端的客戶端腳本塊 - 查看javascript setTimeout。

例如在頁面加載

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "window.setTimeout(ShowDialog, 1000);", true); 

或帶參數...

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "window.setTimeout(function(){ShowDialog(arg1,arg2);}, 1000);", true); 
+0

所以現在的方式來執行一些客戶端JS在tick事件中沿着C#代碼? – Rishi 2013-02-27 13:33:16

+1

C#tick事件將在頁面已經提交給客戶端瀏覽器後觸發,因此您不能再更改瀏覽器中的內容。 – 2013-02-27 13:37:08

+0

想你的方法,但有一個錯誤說:「 錯誤:的ReferenceError:ShowDialog的是沒有定義 源文件:URL行:452」 – Rishi 2013-02-27 13:59:01