2013-05-08 4 views
0

asp.net 애플리케이션의 C# 클래스에서 자바 스크립트 함수를 실행하려고합니다. ScriptManager을 사용하고 있습니다. 클래스에서 ScriptManager 호출하기

public static void RunScript() 
{ 
    try 
    { 
     if (HttpContext.Current != null) 
     { 
      Page currentPage = HttpContext.Current.Handler as System.Web.UI.Page; 
      ScriptManager.RegisterClientScriptBlock(currentPage, currentPage.GetType(), "disableControls", "disableControls()", true); 
     } 
    } 
    catch (Exception ex) 
    { 
    } 
} 

내가 다른 정적 클래스에서 UpdateUI.RunScript() 전화

HttpContent.Currentnull이다 : 나는 다음과 같은 방법을 포함하는 클래스 UpdateUI을 보유하고 있습니다. 코드 숨김이 아닌 클래스에서 scriptmanager를 실행하려면 어떻게해야합니까?

+0

여기서 정적 클래스는 어디에서이 메서드를 호출합니까? 페이지의 수명주기 동안? 그렇지 않으면 (예 : 웹 메소드에서) 'null'입니다. –

+0

@TimSchmelter 지금까지 WebMethod에서 HttpContext.Current를 사용할 수 있음을 알고 있습니다. 이미 WebMethod에서 세션 데이터를 가져 오기 위해이 작업을 수행 한 것 같습니다. –

+0

@VitorCanova : 'HttpContext.Current.Handler'는 웹 메소드에서'Page'가 아니므로'null'입니다. 그러나 그것은 단지 예일뿐입니다. 정적 클래스가 페이지의 수명주기 동안 사용되면 언급하지 않았습니다. –

답변

0

HttpContext를 정적 클래스 내의 메서드에 전달합니다. Tim Schmelter의 의견에서 알 수 있듯이 HttpContext.Current를 호출하는 것은 들어오는 요청에 대한 응답으로 완료되지 않으면 실패합니다.

public static void RunScript(HttpContext context);