如何在外部js文件中使用服務器端腳本來獲取對dom元素的引用?外部js文件中的Asp.Net腳本
以下內容在用作內聯腳本時按預期工作,但在將其移至外部js文件時返回null。
$("#<%= gridResults.ClientID %>");
如何在外部js文件中使用服務器端腳本來獲取對dom元素的引用?外部js文件中的Asp.Net腳本
以下內容在用作內聯腳本時按預期工作,但在將其移至外部js文件時返回null。
$("#<%= gridResults.ClientID %>");
你需要有一個創建一個JavaScript變量內嵌腳本塊。應該在您的外部JavaScript文件之前添加此塊。一旦你這樣做了,你可以在你的外部JavaScript文件中引用這個變量。
<script type="text/javascript">
var grid = $("#<%= gridResults.ClientID %>");
</script>
<script type="text/javascript" src="path/to/my.js"></script>
你不能把#<%= gridResults.ClientID %>
,因爲gridresults.ClientID是特定於該asp.net頁面。
你可以這樣做:
<stript src="yourfile" type="text/javascript"> <!--link to external js file-->
<script type="text/javascript">
var grid = $("#<%= gridResults.ClientID %>");
yourfunction (grid);
</script>
你想要發生什麼不能。外部JavaScript文件不被後面的ASP.NET頁面代碼解析,所以ASP.NET的功能不可用。
如果您只是使用CssClass屬性的網格上的唯一類,那麼您應該能夠訪問網格而不必知道它的clientID是什麼。
請參閱http://stackoverflow.com/questions/844970/is-there-a-better-way-to-get-clientids-into-external-js-files和http://stackoverflow.com/questions/ 1232465/how-to-use-jquery-select-element-by-id-and-asp-net-without-puts-ctl00-everyw/1232498#1232498對於一些常規解決方案。有關jQuery解決方案,請參閱http://stackoverflow.com/questions/497802/how-to-stop-asp-net-from-changing-ids-in-order-to-use-jquery/497872#497872。 – 2009-11-19 15:10:50