2011-01-20 5 views
3

안녕하세요 일부 사람들이 RegisterClientScriptBlock()을 제안하는 동안 일부 사람들이 RegisterStartupScript()를 호출하여 클라이언트 측 js를 호출하는 이유가 궁금합니다.ScriptManager.RegisterStartupScript()와 ScriptManager.RegisterClientScriptBlock()의 ​​차이점은 무엇입니까?

js 명령문 호출을 사용하여 동일한 작업을 수행 할 때 두 작업 간의 차이점을 명확하게 알려주십시오. 경고와 같은 js 명령문 만 사용하는 것이 좋으며 codebehind에서 확인을 반환하십시오.

답변

15

RegisterClientScriptBlock 메서드는 Page 객체의 <form runat="server"> 요소의 여는 태그 바로 아래에 클라이언트 측 스크립트를 삽입합니다. 이 코드는 폼의 요소를 액세스 할 수 없습니다. 그 시점에서 요소가 아직 인스턴스화되지 않았기 때문입니다.

RegisterStartupScript 메서드는 지정된 클라이언트 쪽 스크립트를 Page 개체의 <form runat="server"> 요소의 닫는 태그 바로 앞에 삽입합니다. 이 코드는 폼의 모든 요소에 액세스 할 수 있습니다. 그 때 그 요소는 인스턴스화 되었기 때문입니다. 사용할 메소드의 선택은 페이지를 렌더링 할 때 브라우저가 스크립트를 실행하게하려는 "순서"에 따라 달라집니다.

js-function을 등록하려면 일반적으로 을 사용하고이 함수를 호출하거나 페이지의 컨트롤에 액세스하려면 RegisterStartupScript을 사용하십시오.

자세한 내용은 MSDN을 참조하십시오.

+0

Page 개체 요소의 여는 태그 =

태그입니다. –

+0

@ 물어 봅니다 : 예, 그 '< >'때문에 stackoverflow에 의해 필터링되었습니다. 지금 수정되었습니다 ... –

관련 문제