2011-11-01 3 views
1

기본적으로 전체 컨트롤을로드하지 않고도 읽을 수있는 ascx 컨트롤의 부울 속성을 원합니다 (이 경우 LoadControl 이벤트가 발생하지 않도록하고 싶습니다).속성에서 속성 가져 오기

컨트롤에 대한 가상 경로를 통해 다른 사용자가 다른 컨트롤 집합을 표시해야하는 데이터베이스 행이 있습니다. 이러한 컨트롤을 인쇄하는 기능을 추가해야하지만 특정 컨트롤 만 인쇄 할 수 있습니다.

나는 그것을 지원하는 컨트롤을위한 인터페이스를 가지고 있다고 생각했다. 그런 다음 프린트 페이지를 만들 때 각 컨트롤의 유형을 점검하여 해당 인터페이스가 있는지 확인한다.
나는 그 파일의 URL에서 컨트롤 형식을 얻는 방법이 있는지 궁금하네요. Page.LoadControl(url).GetType() 일할 것이라고 알고 있지만 가능한 경우 컨트롤을 작성하는 오버 헤드를 피하기 위해 싶습니다.

이유 : 어떤 식 으로든 속성이 이상적 일 것이라는 ASCX 파일 저장소의 코드를 가진 개발 과정에서 다른 컨트롤에 추가 할 수있는 인쇄 할 수있는 기능 이후 . 각 데이터베이스 목록에서 속성을 업데이트 할 필요가 없습니다.

답변

2

System.Web.Compilation 네임 스페이스의 BuildManager 클래스를 사용하여 UserControlType을 가져올 수 있습니다.

Type ctrlType = BuildManager.GetCompiledType("~/PrintableControl.ascx"); 
bool isPrintable = typeof(IPrintable).IsAssignableFrom(ctrlType); 
+0

이것은 정확히 내가 원했던 것 같습니다. 덕분에 많은 것이 있습니다. 이 답변을 받기 전에 담당자가 777 명이었고 7 개의 배지가 있었으므로 "777 * 7"이라고 표시되었습니다. – Thymine

관련 문제