2017-01-03 10 views
0

내에서 ScriptManager.RegisterStartupScript를 사용하는 방법 나는 aspx 페이지에서 창에서 문서를 열려면 다음 코드를 사용 :다양한 프로젝트에서 DLL

public void viewDocument(string strLink, System.Web.UI.Control ctrlPanel) 
{ 
    string strScript; 
    strScript = "var w=window.open('" + strLink + "','zz');window.focus();"; 
    ScriptManager.RegisterStartupScript(ctrlPanel, ctrlPanel.GetType(), "ShowInfo", strScript, true); 
} 

모든 것이 잘 작동한다.
많은 프로젝트에서 유용 할 수있는 기능 만 포함하는 프로젝트라는 도구 상자를 만들기로 결정했습니다. 해당 도구 상자는 현재 프로젝트에서 참조하는 dll입니다.
내 문제 : 내 viewDocument 함수가 더 이상 작동하지 않습니다. 자바 스크립트 오류가 없습니다. 디버그 모드에서 "ScriptManager.RegisterStartupScript"명령을 실행하는 것을 볼 수 있지만 창이 열리지 않습니다.
누군가 내가 놓친 것을 설명 할 수 있습니까?

+0

오랫동안이 작업을 해본 적이 없지만 기억이 잘 나면 웹 페이지에 ScriptManager 컨트롤이 있어야한다고 생각합니다. 그런 경우인지 확인 했습니까? – JuanR

+0

예, 마스터 페이지에 있습니다. –

+0

ScriptManager.GetCurrent()를 호출 해 보았습니까? 너는 무엇을 얻 느냐? 그게 무슨 일이 일어나는지 알아낼 수 있습니다. – JuanR

답변

0

이 스 니펫을 사용하십시오. 그렇다면 System.Web.UI.Control을 변수로 보낼 필요가 없습니다.

public void viewDocument(string strLink) 
{ 
    Page page = HttpContext.Current.CurrentHandler as Page; 

    string strScript = "var w=window.open('" + strLink + "','zz');window.focus();"; 
    ScriptManager.RegisterStartupScript(page, page.GetType(), "ShowInfo", strScript, true); 
} 
+0

내 문제가 해결되었습니다! Juan에게 감사와 감사합니다! –