2010-06-04 8 views
7

나는 테이블과 버튼을 조합 한 사용자 정의 컨트롤을 개발하고 있습니다. 또한 이러한 요소의 스타일을 정의하는 외부 CSS 스타일 시트가 있습니다.CSS 스타일 시트를 ASP.NET 사용자 정의 컨트롤과 연결하기

컨트롤의 타입이 공간에서, CompositeControl입니다 MyControls 및 클래스의 정의는 생성 된 DLL 파일이 MyControls.dll

명명되어 CompositeControl.cs 및 클래스 파일에 스타일 시트는 styles.css이며 CompositeControl.cs와 같은 폴더에 있습니다.

각 컨트롤 (Button, TableCell 등)에 대해 d CssClass 속성

이 컨트롤을 ASP.NET 웹 페이지에 추가하고 localhost에서 실행할 때 HTML 소스를 확인하면 모든 컨트롤 태그에 클래스 속성이 올바르게 설정되어 있지만 소스에 <link> 태그가 포함되어 있지 않습니다. 외부 스타일 시트를 포함하는 데 필요합니다.

누군가 내가이 작업을 수행하기 위해해야 ​​할 일이 무엇인지 말해 줄 수 있습니까? 감사.

답변

7

외부 소스 파일은 페이지에 자동으로 포함되지 않습니다. 당신은 당신의 페이지에 컨트롤에 수동으로 등록해야합니다 :

HtmlLink cssSource = new HtmlLink(); 
cssSource.Href = Page.ClientScript.GetWebResourceUrl(this.GetType(), "styles.css"); 
cssSource.Attributes["rel"] = "stylesheet"; 
cssSource.Attributes["type"] = "text/css"; 
Page.Header.Controls.Add(cssSource); 

또한 임베디드 리소스의 위치를 ​​얻을 수 ClientScriptManager.GetWebResourceUrl를 사용하려고합니다. 다음은 임베디드 리소스를 참조하는 an example입니다.

+0

감사합니다. 그것은 효과가 있었다. –

+0

GetWebResourceUrl을 사용하면 스타일 시트가 연결되지 않습니다. –

+0

@wacky_coder : 그래, 문제가 생겼어. 첫 번째 매개 변수 인 type 매개 변수는 리소스의 컨테이너 여야합니다. 이 경우 컨트롤의 유형. – Canavar

관련 문제