2011-01-14 3 views
2

ScriptManager을 확장하여 여러 리소스 파일 (예 : CSS뿐만 아니라 둘 이상의 스크립트 파일)이있는 리소스를 처리하기 쉽도록했습니다. 목표는 ScriptReferenceScripts에 추가하고 해당 참조 이름과 관련된 둘 이상의 리소스를로드 할 수있게하는 것입니다.ScriptManager, Page, 정적 메서드 ... 페이지가없는 현재 ScriptManager를 얻으려면 어떻게해야합니까?

내가 붙어있는 것입니다. 은 Page 매개 변수를 포함하지 않는 정적 메서드를 사용할 때 어떻게해야할까요? 예를 들면 다음과 같습니다.

ScriptManager.ScriptResourceMapping.AddDefinition("someName", new 
    ScriptResourceDefinition { Path="/script/somescript.js"}); 

이렇게하면 활성 스크립트 관리자가 호출 할 때 실행중인 페이지에 대한 정의가 추가됩니다 (추측). 그러나 이전 학교 방법과 달리 RegisterClientScriptBlock처럼 페이지를 식별하는 매개 변수는 전달되지 않습니다. 하지만이 물건은 ScriptManager 개체에 저장해야합니까? 어떻게 알 수 있습니까?

ScriptManager.GetCurrent(page);

을하지만 이상적으로, 나는 마이크로 소프트처럼 정확하게 작동하는 새로운 방법을 만들 것입니다 :

나는 항상이과 활성 하나에 대한 참조를 얻을 수 있습니다.

ScriptManager.ScriptResourceMapping.AddDefinition(string name, 
    ScriptResourceDefinition definition, 
    ResourceType type) 

과 같이 구현할 수있는 방법을 알아낼 수 없습니다.이 매개 변수는 Page 매개 변수를 추가하지 않고도 객체 인스턴스를 알아낼 수 있습니다. 어떻게 든 그들은 그것을하고있다. .. 나는 할 수 있냐?

+0

왜 스크립트 관리자에서 이동하고 간단한 처리기를 만들지 않고 자기가 직접 파일을 읽으려고하면 코드로 동일한 작업을 수행하고 전체 처리기를 완벽하게 제어 할 수 있습니다. (그 (것)들을 분쇄하고, 그 (것)들 등을 맑게하십시오) – Aristos

+0

나는 이미 저것을 여기에서 끝난 어떻게 그런 것이있다. 하지만 정말 ScriptManager와 통합하기를 원하기 때문에 (디버그/릴리스, CDN 등에 사용할 버전을 결정하는 것과 같은) 매우 유용한 기능이 있기 때문에 모든 기능을 구현할 이유가 없습니다. –

답변

8

정적 컨텍스트에서도 페이지 참조를 (Page)(HttpContext.Current.Handler)까지 가져옵니다.

+0

나는 이것을 몰랐다. 감사. 내 스크립트 관리자를 통해 처리하고 MS의 소스를보고 모두 알아 냈으므로 결국에는 전혀 참조 할 필요가 없지만 내 질문에 대답합니다. 나는 MS가 무엇을하는지 알아 냈다. 그러나 ScriptResourceDefinition 정적 메소드는 페이지 컨텍스트를 전혀 가지지 않는다. (ScriptResourceDefintion은 컨텍스트가없는 정적 객체입니다.) –

관련 문제