0

구글 맵을 사용하려고하는데, 자바 스크립트를 등록하려고하는 곳에서 usercontrol을 만들었지 만, 항상 등록되지 않은 것처럼 다시 코드를 등록하려고했습니다. clientscript를 사용합니다. 그러나 다시, 같은 문제. 그것은 등록되지 않습니다.사용자 콘트롤에서 자바 스크립트 Resgistering

다음 코드는 usercontrol의 페이지로드 이벤트에 기록됩니다.

ClientScriptManager script = Page.ClientScript; 

     if (!script.IsStartupScriptRegistered(this.GetType(), "scriptKey")) 
     { 
      StringBuilder sb = new StringBuilder(); 
      sb.AppendLine("function initialize() {"); 
      sb.AppendLine("var latlng = new google.maps.LatLng(%%LAT%%, %%LONG%%);"); 
      sb.AppendLine("var myOptions = {"); 
      sb.AppendLine("zoom: 8,"); 
      sb.AppendLine("center: latlng,"); 
      sb.AppendLine("mapTypeId: google.maps.MapTypeId.ROADMAP"); 
      sb.AppendLine("};"); 
      sb.AppendLine("var map = new google.maps.Map(document.getElementById(\"\"%%CLIENTID%%\"\"), myOptions);"); 
      sb.AppendLine("}"); 


      sb = sb.Replace("%%CLIENTID%%", this.ClientID); 


      sb = sb.Replace("%%LAT%%", (a1 == null ? 42.006160736084 : a1.latitude).ToString()); 
      sb = sb.Replace("%%LONG%%", (a1 == null ? -93.6386795043945 : a1.longitude).ToString()); 

      script.RegisterStartupScript(this.GetType(), "scriptKey", sb.ToString(), false); 

그리고이 컨트롤을 aspx 페이지에서 사용하려고합니다. 어떤 도움을 주시면 감사하겠습니다. Thanks!

답변

2

태그를 잊어 버렸습니다. 그가 태그를 추가하지 않을 경우

 StringBuilder sb = new StringBuilder(); 
     sb.AppendLine("<script type=\"text/javascript\"> function initialize() {"); 
     ...... 
     ...... 
     ...... 
     ...... 
     sb = sb.Replace("%%LAT%%", (a1 == null ? 42.006160736084 : a1.latitude).ToString()); 
     sb = sb.Replace("%%LONG%%", (a1 == null ? -93.6386795043945 : a1.longitude).ToString()); 

     sb.Append("</script>"); 
+1

또한 그는 true로 script.RegisterStartupScript의 마지막 매개 변수를 변경할 수 있으며 그를 위해 스크립트 태그를 추가합니다. – Adrian

+0

마지막 매개 변수를 true로 설정하여 시도한 것뿐만 아니라 태그를 추가했습니다. 작동하지 않습니다. – Ratan

관련 문제