2010-07-27 2 views
1

오류보고에 사용하려는 javascript 모달이 있습니다. 모든 것은 페이지로드 전에 코드가 실행된다는 점에서 잘 작동합니다. 그래서 결과는 아무 것도 실행되지 않는다는 것을 의미하는 head 태그 앞에 자바 스크립트가 있다는 것입니다!Page_Load 질문

어떤 도움이 필요합니까?

string strErr = "error here"; 
      ErrorDisplay myError = new ErrorDisplay(); 
      myError.ShowError(strErr); 
+0

약간의 코드가 도움이 될 것입니다. –

답변

1

이 내가 그것을 달성하는 방법입니다 : 코드는 약간하지만 당신의 예제에 맞게 수정해야

public void ShowError(Page CurrentPage,string error) 
{ 
    StringBuilder sb = new StringBuilder(); 
    sb.Append("<script type='text/javascript'>"); 
    sb.Append("$.facebox.settings.opacity = 0.4;"); 
    sb.AppendFormat("jQuery.facebox('{0}');", error); 
    sb.Append("</script>"); 

    Type t = this.GetType(); 

    CurrentPage.ClientScript.RegisterStartupScript(t, "ErrorScript", sb.ToString()); 
} 

내가 (이, "오류 문자열")를 호출 할 때;

많은 분들께 감사드립니다 !!

2

이 단지를 사용해보십시오 나중에 전화를 Page_Load에서 코드를 찾고 가정 : 그런데

public void showError(string error) 
{ 
    string script = "<script type=\"text/javascript\">$.facebox.settings.opacity = 0.4;jQuery.facebox(\""+error+"\");</script>";   
    System.Web.HttpContext.Current.Response.Write(script);   
} 

내 ShowError 방법이 내가 그것을 호출하는 방법입니다 ErrorDisplay 라는 클래스 내에 Page_PreRender 메서드를 대신 사용하십시오. 이벤트 목록 및 호출 순서는 여기에 있습니다. http://msdn.microsoft.com/en-us/library/aa479007.aspx

3

기본 문제는 실행하기 전에 DOM 준비가 완료 될 때까지 기다려야한다는 것입니다.

public void Page_Load(Object sender, EventArgs e) 
{ 
    Type myType = this.GetType(); 
    string script = "<script>alert('Hello World! I am ready.');</script>"; 

    Page.ClientScript.RegisterStartupScript(myType, "StartupScript", script); 
} 

UPDATE 내 예는 그 사실에 기반

:

이 주변에 가장 쉬운 방법은 코드를 실행하기 위해 ClientScriptManager.RegisterStartupScript 방법을 사용하기보다는 직접 페이지에 추가하는 것입니다 귀하의 원래 질문은 특히 Page_Load에 관한 것입니다.

public void ShowError(string error) 
{ 
    StringBuilder sb = new StringBuilder(); 
    s.Append("<script type='text/javascript'>"); 
    s.Append("$.facebox.settings.opacity = 0.4;"); 
    s.AppendFormat("$.facebox('{0}');", error); 
    s.Append("</script>"); 

    Type t = this.GetType(); 
    Page.ClientScript.RegisterStartupScript(t, "ErrorScript", sb.ToString()); 
} 
+0

OK, 조금 설명하겠습니다. 내 페이지에 오류를 표시하는 클래스가 있습니다. 내가하는 일은 문자열을 전달하는 것 뿐이며 오류를 보여줍니다. 이 코드가 여전히 작동합니까? 클래스에서 this.GetType에 어떻게 액세스합니까? – Churchill

+0

@Kenyana - 코드 예를 들어 원본 게시물을 수정하십시오. 현재, 당신이하는 일을 이해하지 못합니다. –

+0

샘플 코드를보십시오. 때로는 페이지로드시 반드시 실행하고 싶지는 않지만 일부 기능을 e.t.c라고 부르는 경우도 있습니다. – Churchill

관련 문제