2013-03-06 79 views
0

在ASP.NET中,我們與呼叫定義JS-功能:ASP.NET呼叫定義JS-函數的RegisterStartupScript

Page.ClientScript.RegisterStartupScript(GetType(), "", "JSFuncNameHere();", true); 

我在想:

  • 爲什麼沒有任何方法,其名稱如下:Page.ClientScript.CallJSScript(「someJSFunc」);
  • 爲什麼upper-method需要反射方法GetType()?有些東西在運行時沒有定義,是嗎?
  • 爲什麼我需要第二個參數key?正如我測試過的,我可以將它留空,並調用已有的JS函數。

回答

1
  • 爲什麼沒有任何方法,它有一個名字,如:Page.ClientScript.CallJSScript( 「someJSFunc」);

可能是因爲這是更通用的解決方案,因爲只需添加2個字符即可獲得相同的結果,如果需要,您可以添加參數和其他任何內容。

  • 爲什麼upper-method需要反射方法GetType()?有些東西在運行時沒有定義,是嗎?
  • 爲什麼我需要第二個參數鍵?正如我測試過的,我可以將它留空,並調用已有的JS函數。

對於這兩個同樣的原因 - 該方法將檢測您是否多次運行相同的腳本,在這種情況下,只需調用一次即可。這兩個參數是它如何識別重複的手段 - 一個關鍵是不夠的,因爲另一個庫中的另一個類可能使用相同的鍵 - 所以您需要傳入您自己的類的類型以確保腳本在執行時你想要它。

+1

值得指出的是'RegisterStartupScript'的MSDN文檔 - http://msdn.microsoft.com/en-AU/library/z9h4dk8y.aspx - 爲「備註」中的點2和3提供了答案。當試圖確定方法參數的目的時,MSDN應該*始終*成爲您的第一站:) – Snixtor 2013-03-06 22:04:03