2011-04-29 2 views
0

사용자가 페이지를 제출할 때 Javascript를 표시하려고합니다. 나는이 자바 스크립트를 코드를 통해 호출하고있다. (나는 쉬운 일이라고 생각한다.) 여기에 내 코드가있다 :CodeBehind 페이지에서 Javascript를 표시하지 마!

MessageBox1("Testing my Message"); //Calling Function! 

private void MessageBox1(string msg) //This is in the code behind of the page. 
    { 


     // Cleans the message to allow single quotation marks 
     string cleanMessage = msg.Replace("'", "\\'"); 
     string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>"; 

     // Gets the executing web page 
     Page page = HttpContext.Current.CurrentHandler as Page; 

     // Checks if the handler is a Page and that the script isn't allready on the Page 
     if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) 
     { 
      page.ClientScript.RegisterClientScriptBlock(typeof(CommSetup), "alert", script); 
     } 


    } 

이것은 작동하지 않는다. .. 내가 무엇을 잘못하고 있냐? 고맙습니다! 대신 리터럴을 사용

+1

게시 된 자바 스크립트와 서버 측 코드를 게시하십시오. – Oded

답변

1

사용이 정적 방법은 "유틸리티"당신이이 방법을 배치 클래스의 이름이어야 광산 유틸리티를 호출 할 일이.. 코드 숨김 부분 클래스에 넣으면 일반적으로 웹 페이지가 .cs로 끝나면 호출됩니다.

+0

유틸리티가 인식되지 않습니다 .... –

+0

추가 정보는 편집을 참조하십시오. – MAW74656

+0

나는 그것을했다, 나의 편집 부호를 보아라. 그것은 내 스크립트를 보여주지 않습니다 ... 그것은 함수 안에 들어가지만 내게 스크립트를 표시하지 않습니다 ... –

2

는 ClientScriptManager 사용

Page.ClientScriptManager.RegisterStarupScript("startup", 
     "<script language='javascript'>window.location=''; window.alert('" + msg.Replace("'", "\\'") + "') </script>", false); 

나는 많은 매개 변수가 필요 정확히 어떻게 잊어을하지만, 다음과 같이 보일 것입니다. ScriptManager를 사용하는 경우도 다음과 같습니다.

ScriptManager.RegisterStartupScript(this.GetType(), "startup", ..); 

너무 있습니다.

HTH.

public static void JS_Alert(string message) 
    { 
     // Cleans the message to allow single quotation marks 
     string cleanMessage = message.Replace("'", "\\'"); 
     string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>"; 

     // Gets the executing web page 
     Page page = HttpContext.Current.CurrentHandler as Page; 

     // Checks if the handler is a Page and that the script isn't allready on the Page 
     if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) 
     { 
      page.ClientScript.RegisterClientScriptBlock(typeof(Utilities), "alert", script); 
     } 
    } 

편집 : 경고를 팝업하는

관련 문제