간만에 글을 올리네요...^^

Web을 구축하다보면 동적으로 자바스크립트를 구성해야 할 사항이 발생할 때가 있죠?

그때 사용하는 클래스로 ClientScriptManager 클래스가 있습니다.
이 클래스는 클라이언트측의 스크립트를 관리하는 클래스죠...

이번 중국 티켓팅서비스 사이트를 구축하던 중 나온 질문이 있었습니다.
플랙스를 구현하던 중 동적으로 자바스크립트를 구현해서 호출해야하는데 방법이 있느냐는...

자바스크립트를 등록시키는 메서드중 대표적인 것이 RegisterClientScriptBlockRegisterStartupScript 가 있습니다.

차이점은 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 ))*
반응형

+ Recent posts