2009-03-11 6 views
3

안녕하세요. 문제가 있습니다. 내 모든 콘텐츠 페이지가 상속하는 마스터 페이지가 있습니다. 이 masterpage 내에서 자바 스크립트 파일 폴더 "~/Scripts/validation.js"를 가리키는 스크립트 태그가 있습니다.Usercontrol access 콘텐츠 페이지의 마스터 페이지에서 Javascript

내 콘텐츠 페이지에서 validation.js 파일 내의 많은 기능을 사용해야하는 다른 usercontrols를 사용합니다 그러나 태그 및 Javascript 함수를 contentpage의 contentholder 내에 두지 않으면 usercontrols는 이러한 함수를 보지 못하고 "OnNameValidation"과 같은 오류가 발생합니다.

물론 Javascript 코드 중 하나에서 버그를 발견하면 모든 페이지에 Javascript 코드를 복사 할 수 있지만 30+ 페이지와 유지 관리의 어려움이 있습니다.

그렇다면 (내 긴 논문에서 이미 알지 못했다면) contentpages와 usercontrols 등이 함수에 액세스 할 수 있도록 validation.js 파일의 경로가있는 script 태그를 어떻게 선언 할 수 있습니까? /암호.

답변

0

당신이하려고하는 것은 작동해야합니다, 그래서 나는 당신의 자바 스크립트 파일에 대한 경로가 잘못되었다고 생각합니다. (오직 가정 할 수있는 html 코드를 보지 않아도됩니다). HEAD runat = "server"태그에 링크가있는 경우 "~/Scripts/validation.js"와 같은 javascript 파일 만 참조 할 수 있습니다. runat = "server"가 없으면 파일을 찾을 수 없습니다. 당신은 "../scripts/validation.js"와 같은 것을해야 할 것입니다.

테스트로서 저는 masterpage에서 자바 스크립트 함수를 호출하려고 했으므로 잘못된 파일 참조를 배제 할 수 있습니다.

0

이 팁은 ScottGu here에서 가져 왔습니다.

당신에게 사용자 컨트롤에 인텔리 수 있도록 사용자 컨트롤이 추가하지만 항상 false 평가 :

<% if (false) { %> 
    <script src="/Scripts/validation.js" type="text/javascript"></script> 
<% } %> 
0

당신이 당신의 js 파일 아마 모든 페이지에 일치하지 않습니다에 대한 할당되는 경로입니다. 당신은 스크립트, MasterPages, 페이지 & 컨트롤에 대한 별도의 폴더가있는 경우

script src="../JavaScript/Scriptaculous/scriptaculous.js" 

그것은이 위 같은 것을해야한다.

0

현재 마스터 페이지의 소스 코드로 이동하여 ContentPlaceHolder의 머리와 외부에 다음을 추가하여 사이트에서이 작업을 수행하고 있습니다.

<head> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
    </asp:ContentPlaceHolder> 

    <script src="CP.js" type="text/javascript"></script> 
</head> 
관련 문제