2010-02-25 9 views
1

실제 UserControl 클래스에서 더 파생 된 사용자 지정 UserControlBase 클래스에서 파생되는 asp.net 사용자 컨트롤 라이브러리를 구축하고 있습니다. 계층 구조는 다음과 같습니다코드 숨김에서 ASCX의 테두리 속성을 변경 하시겠습니까?

ASCX -> UserControlBase : UserControl을

나는 모든 ASCX의 주위에 테두리를 넣어이 요구 사항을 가지고있다. 그래서 UserControlBase를 수정할 수 있다면 모든 ASCX에 적용될 것이라고 생각했습니다. UserCOntrolBase의 Page_Load에서 다음 코드를 시도했지만 작동하지 않습니다.

this.Attributes.Add ("style", "border-color : # FFFF66; border-width : 4px; border-style : Dashed;

제대로 작동하려면 어떻게해야합니까? 제발 조언.

덕분에 AJ

답변

2

사용자 컨트롤은 내부에 넣어 것보다 다른 그와 관련된 마크 업이 없습니다. 따라서 스타일 속성을 추가 할 수있는 태그가 없습니다. 따라서 포장 태그를 직접 추가해야합니다.

하나의 솔루션은 다음과 같이 UserControlBase의 렌더링 메소드를 오버라이드 (override)하는 것입니다

protected override void Render(HtmlTextWriter writer) 
{ 
    writer.Write("<div style='border-color:#FFFF66;border-width:4px;border-style:Dashed'>"); 
    base.Render(writer); 
    writer.Write("</div>"); 
} 

이 스타일을 포함하면 추가하려는 속성을 div 태그에 사용자 정의 컨트롤을 래핑합니다.

관련 문제