2010-01-12 3 views
1

나는 ASP.NET AJAX 사용자 지정 usercontrol이 JS 파일과 마찬가지로 CSS 파일 사용을 '등록'할 수 있는지 궁금합니다. ?asp.net ajax 컨트롤을 자동으로 CSS 파일을 참조하는 방법

예 : IScriptControl 인터페이스를 구현하면 스크립트 관리자가 GetScriptReferences()를 호출 할 수 있으므로 CSS 파일과 비슷한 점이 있습니까?

답변

2

번호

당신은 포함 된 리소스를 사용하여 페이지에 기록하는 HTML을 생성하는 자신 만의 방법을 쓸 수 있습니다.

그러나 최선의 방법으로 권장하지는 않습니다. 스타일과 마크 업을 명확하게 구분해야합니다. 스타일 시트에 종속 된 사용자 정의 컨트롤을 작성하려면 컨트롤과 함께 기본 CSS 파일을 제공하는 것이 좋습니다.

편집

당신은 (런타임에) 페이지에 CSS 파일에 대한 참조를 추가하려면이 코드를 실행할 수 있습니다 (코멘트에서 질문에 대답합니다). RegisterClientScriptBlock method을 사용하고 있기 때문에 삽입 복제를 관리 할 수 ​​있습니다. 방법에 대한 링크에서 발췌 한 내용은 다음과 같습니다.

클라이언트 스크립트는 해당 키와 유형으로 고유하게 식별됩니다. 동일한 키 및 유형을 가진 스크립트는 중복으로 간주됩니다. 주어진 유형 및 키 쌍이있는 하나의 스크립트 만 페이지에 등록 할 수 있습니다. 이미 등록 된 스크립트를 등록하려고해도 스크립트의 복제본을 만들지 않습니다.

StringBuilder sb = new StringBuilder(); 

sb.Append(@"<link rel=""stylesheet"" type=""text/css"" href="""); 
sb.Append(this.Page.ClientScript.GetWebResourceUrl(this.GetType(), resourceName)); 
sb.Append(@""" />"); 

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyCSS", sb.ToString()); 
+0

그게 내가하려는 일입니다. JS 파일과 마찬가지로 컨트롤과 함께 제공해야하는 CSS 파일이 있습니다. 어셈블리 파일의 JS 파일과 함께 임베디드되어 있으므로 CSS 파일의 이름을 수동으로 작성하고 싶지 않습니다. 그 이외에, 만약 내가 50 번 (텍스트 상자 말처럼) 페이지에 컨트롤을 가지고 있다고 말한다면, 그것은 CSS 페이지를 50 번 재 참조하려고 할 것인가? – mrwayne

+0

이것이 원하는 경우 코드 샘플을 사용하여 수정 된 답변을 확인하십시오. –

+0

나는 내가하고 싶은 것을 거의 확실하다고 확신한다. 감사! – mrwayne

관련 문제