2010-08-07 3 views
3

사용자 정의 컨트롤이 아닌 사용자 지정 컨트롤이 포함 된 사용자 지정 클래스 라이브러리를 작성하고 있습니다. 페이지에 등록해야하는 일부 JavaScript 파일이 있습니다.사용자 지정 컨트롤에서 ToolKitScriptManager/ScriptManager에 액세스

이제 클래스 라이브러리이므로 ToolKitScriptManager 또는 ScriptManager를 사용할지 여부를 어떻게 감지합니까?

Page.ClientScript는 ClientScriptManager이지만 페이지에 새 ToolKitScriptManager가 있으면 어떻게됩니까?

답변

2

컨트롤이 인스턴스화되는 페이지가 ScriptManager.GetCurrent() 정적 메서드를 호출하여 ScriptManager을 사용하는지 확인할 수 있습니다. 이 값이 null이면 페이지가 ScriptManager이 아닌 ToolKitScriptManager을 사용하고 있다고 가정 할 수 있습니다.

+0

페이지에서 ToolKitScriptManager를 사용하고 메서드가 null을 반환한다고 가정하면 ToolKitScriptManager를 찾는 가장 효과적인 방법은 무엇입니까? 내가 찾을 때까지 페이지 컨트롤을 반복하십시오. – Matt

+2

'ToolKitScriptManager'는'ScriptManager'에서 파생 된 것을 감안할 때'ScriptManager.GetCurrent'를 호출하면 ToolKitScriptManager가 포함 된 페이지에 대해 ToolKitScriptManager에 대한 참조가 반환되는 것으로 의심됩니다 (ScriptManager로 캐스팅 된 페이지의 경우) 또는 ScriptManager에 대한 참조이므로 페이지에 "null"이 반환되지 않아야합니다. – Rob

+0

의심의 여지가 있습니다. 나는 또한'ScriptManager'가'ToolScriptManager' 인스턴스를 건네 준 것을 발견했습니다. 코드를 사용하려면 명시 적으로 네임 스페이스를 사용해야합니다 (예 : 'System.Web.UI.ScriptManager.GetCurrent (this.Page);'호출). – Brian

관련 문제