Web/ASP.NET
[ASP.NET] RegisterStartupScript Method
WooGong Peter
2010. 3. 19. 10:16
간만에 글을 올리네요...^^
Web을 구축하다보면 동적으로 자바스크립트를 구성해야 할 사항이 발생할 때가 있죠?
그때 사용하는 클래스로 ClientScriptManager 클래스가 있습니다.
이 클래스는 클라이언트측의 스크립트를 관리하는 클래스죠...
이번 중국 티켓팅서비스 사이트를 구축하던 중 나온 질문이 있었습니다.
플랙스를 구현하던 중 동적으로 자바스크립트를 구현해서 호출해야하는데 방법이 있느냐는...
자바스크립트를 등록시키는 메서드중 대표적인 것이 RegisterClientScriptBlock 와 RegisterStartupScript 가 있습니다.
차이점은 RegisterClientScriptBlock 메서드는 html 상단에 RegisterStartupScript 메서드는 html 하단에 스크립트를 위치시킨다는 것이죠.
아래의 스크립트를 Page_Load 나 버튼 이벤트에 넣어서 실행시켜보셔요.
아~~ 그렇구나 라고 좋아하실수도... ^^
RegisterClientScriptBlock 같은 경우 상단에 위치하기 때문에 페이지가 호출되면서 다른 자바스크립트를 호출해야 하는경우 호출하려는 스크립트가 아직 생성되지 않은 단계이므로 호출할 수 없다는 자바스크립트 에러가 발생할 수 있습니다.
이럴때 RegisterStartupScript 메서드를 사용하면 좋겠죠?
일단 한번 테스트 해보시고 잘못된 점, 부족한점이 있으면 알려주셔요. ^^
StringBuilder cstext1 = new StringBuilder(); cstext1.Append("<script type=text/javascript> function ClientBlock() {"); cstext1.Append("Form1.Message.value='Text from ClientBlock.'} </"); cstext1.Append("script>"); StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=text/javascript> function StartUpBlock() {"); cstext2.Append("Form1.Message.value='Text from StartUpBlock.'} </"); cstext2.Append("script>"); Type cType = this.GetType(); Page.ClientScript.RegisterClientScriptBlock(cType, "Client", cstext1.ToString(), false); Page.ClientScript.RegisterStartupScript(cType, "StartUp", cstext2.ToString(), false); |
그럼 행복한 고수되십시요...
woojja ))*
반응형