2010-03-25 50 views

回答

6

ClientScriptManager是你正在尋找的它有一套RegisterClientScriptxxx方法來註冊字符串/包括文件/資源​​等作爲客戶端腳本塊。這些方法中的每一個都帶有一個鍵和可選類型的參數,每個鍵/類型的腳本只包含一次。

在用戶控件的onload或OnInit中你要像下面

Page.ClientScriptManager.RegisterClientScriptInclude(typeof(MyUserControl), "myscript", @"/path/to/my/script.js"); 

呼叫無論用戶控制多少實例在頁面腳本只會被包含一次。

順便說一句,Page.RegisterClientScriptxxx方法現在不推薦使用,ClientScriptManager是首選。

+0

感謝 - 自從我參與ASP.NET以來已經有好幾年了;可能應該檢查這種變化。 – 2010-03-26 13:26:03

0

我建議您將javascript源代碼與控件分開,然後在加載控件兩次之前加載JavaScript一次。

1

我假設這是ASP.NET。如果是這樣,在你的代碼中,你調用RegisterClientScriptBlock並傳遞一個密鑰。但是在通話之前,您可以調用IsClientScriptRegistered來檢查該密鑰是否已經註冊。這樣,只有添加的第一個用戶控件纔會註冊它的javascript,所以它只會被添加到頁面一次。