2009-11-19 4 views
5

DOM 요소에 대한 참조를 얻기 위해 외부 js 파일에서 서버 측 스크립트를 어떻게 사용할 수 있습니까?외부 js 파일의 Asp.Net 스크립트

다음은 인라인 스크립트로 사용할 때 의도 한대로 작동하지만 이것을 외부 js 파일로 이동할 때 null을 반환합니다. gridresults.ClientID 그 asp.net 페이지에 특정하기 때문에

$("#<%= gridResults.ClientID %>"); 
+3

참조 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-putting-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를 참조하십시오. –

답변

11

당신은 자바 스크립트 변수를 생성하는 인라인 스크립트 블록을해야합니다. 이 블록은 외부 JavaScript 파일보다 먼저 추가해야합니다. 이렇게하면 외부 JavaScript 파일에서 해당 변수를 참조 할 수 있습니다.

<script type="text/javascript"> 
    var grid = $("#<%= gridResults.ClientID %>"); 
</script> 

<script type="text/javascript" src="path/to/my.js"></script> 
1

당신은 #<%= gridResults.ClientID %>을 넣을 수 없습니다.

당신은 할 수 :

<stript src="yourfile" type="text/javascript"> <!--link to external js file--> 

<script type="text/javascript"> 
    var grid = $("#<%= gridResults.ClientID %>"); 

    yourfunction (grid); 

</script> 
0

원하는 일은 할 수 없습니다. 외부 자바 스크립트 파일은 ASP.NET 페이지의 코드에 의해 구문 분석되지 않으므로 ASP.NET의 기능을 사용할 수 없습니다.

1

CssClass 속성을 사용하여 그리드의 고유 한 클래스가 아니라면 클라이언트 ID가 무엇인지 알 필요없이 그리드에 액세스 할 수 있어야합니다.

관련 문제