2011-10-12 4 views
0

저는 ASP.Net 환경에서 응용 프로그램 빌드 작업을하고 있습니다. JavaScript 함수를 C#의 코드에서 호출하고 싶습니다.코드 뒤에서 JavaScript 함수를 호출 할 수 없습니다.

ScriptManager.RegisterStartupScript() 메서드를 사용하여 "이름이 'ScriptManager'가 현재 contect에 존재하지 않습니다. '라는 오류가 발생했습니다. 이미 System.Web.UI 네임 스페이스가 포함되어 있지만 여전히이 오류가 발생했습니다.

어떻게 이런 일이 발생할 수 있습니까? ScripManager를 사용하여 코드에서 JavaScript 함수를 트리거하는 것이 더 나은 해결 방법이 있습니까?

고급으로 부탁드립니다. 자세한 내용은 여기 MSDN에 RegisterStartupScript http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx에 대한

은 또한 당신이 페이지에 FORM이 있는지 확인

+1

정확히 어떤 이벤트 처리기에서 코드 숨김 부분에서'ScriptManager.RegisterStartupScript' 메서드를 호출하고 있습니까? – Amry

+1

일부 코드를 넣어주세요 – Boomer

답변

0

이 시도

Page.RegisterStartupScript("some_name","javascript function enclosed with script tag") 
0

읽기. 페이지에 양식이 없으면 스크립트가 실행되지 않습니다.

+0

페이지에 양식이 없어서 crontrol 사용자가 있었기 때문에 Page.ClientScript.RegisterStartUpScript()를 사용했고 JavaScript 함수가 작동하지 않습니다. 해결 방법은 없습니까? – sams5817

0

질문이 명확하지 않습니다. 코드 숨김 코드가 실행 중일 때 동시에 javascript 함수를 호출 하시겠습니까? 그렇다면 불가능합니다. 자바 스크립트는 클라이언트 측에서 실행되고 코드 숨김은 서버 측에서 실행됩니다. 컨트롤은 클라이언트 측 또는 서버 측 중 하나이며 컨트롤은 양쪽에서 동시에있을 수 없습니다.

브라우저에서 문서가로드 될 때 ScriptManager.RegisterStartupScript은 페이지 하단에 스크립트 블록을 추가합니다. 이렇게하면 페이지의 자바 스크립트 코드에서 새로 추가 된 자바 스크립트 코드를 호출 할 수 있습니다. 이렇게하면 백엔드에서 맞춤 자바 스크립트 코드를 생성하여 페이지로드로 푸시 할 수 있습니다.

다른 시나리오가있는 경우 명확히하십시오.

1
ClientScriptManager cs = Page.ClientScript; 
cs.RegisterClientScriptBlock(GetType(), "GenerateMatrixText", script, true); 
+0

이것이 작동하지 않으면 설치된 버전의 ajax에 문제가있을 수 있습니다. – Chief

관련 문제