2012-03-29 36 views
2

我有一個更新面板上的控件。每次更新updatepanel時,我都想運行我的JavaScript代碼。如何在ScriptManager.RegisterStartupScript中使用外部js文件?

我用這樣的:

ScriptManager.RegisterStartupScript(this, GetType(), "my_script", "runFunction();", true); 

的問題是,我的js代碼是巨大的,我希望把它放在js文件,並從文件中使用它。我應該在我的代碼中更改哪些內容?

回答

7

你可以使用ScriptManager.RegisterClientScriptInclude方法:

ScriptManager.RegisterClientScriptInclude(updatePanel, updatePanel.GetType(), "a_key", "myScript.js"); 

注意,此方法將在HTML渲染早期的腳本,讓你的腳本不應依賴的順序腳本在頁面上呈現。

更多關於這種方法在http://msdn.microsoft.com/pt-br/library/bb337005.aspx


但是,如果你的腳本取決於一些其他的,更好的選擇是使用ScriptManager.RegisterStartupScript方法,但而不是通過腳本的身體,你要傳遞整個<script>標籤用你的腳本地址:

ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "a_key", "<script type='text/javascript' src='my_script.js'></script>", false); 

注意,最後一個參數,這臺addScriptTags標誌被設置爲false,讓您渲染定義的src屬性整個標籤。

+0

我改變了代碼根據您的建議,但奇怪的事情,現在我得到錯誤在我的JS文件 - 對象的預期。在他同時,當我通過js代碼像一個字符串它的確定。 – user1178399 2012-03-30 08:33:01

+0

@ user1178399,看起來你的腳本依賴於在它之後被渲染的其他腳本(因此,你所依賴的對象還沒有被創建)。看到上面補充的答案知道該怎麼做。 – Raphael 2012-03-30 12:10:29

+0

不錯,至少你最後的解釋阻止我進一步搜索網絡尋找解決方案。 – karlis 2013-07-28 11:11:03