2009-06-24 8 views
4

일반 ID가 아닌 ClientID를 생성하는 컨트롤과 함께 CSS를 사용할 수 있습니까?CSS가있는 Control.ClientID

나는 지금은 cssClass를 사용할 수 있지만 내가 그것을 아이디의를 사용하는 possilbe 있는지 알고 싶어

#DivParrentId #LAbelControlId 
{ 

    padding:100px; 
    color:Red; 
} 

답변

8

이 작업을 수행 할 수있는 좋은 방법이 아니다. 많은 개발자들이 다음과 같은 것을 사용합니다 :

<style> 
#<%= MyControl.ClientID %> 
{ 
    padding:100px; 
} 
</style> 

솔직히 나는 그것을 좋아하지 않습니다. 그것은 매우 매끄럽고 연약합니다. ASP.NET 4.0부터는 코드에서 요소의 ClientID를 제어 할 수 있으므로 CSS 또는 JS로 대상 지정해야하는 요소에 대한 ID를 지정할 수 있습니다.

그동안 클래스를 사용하는 것이 좋습니다. 우리가 작업하는 시스템에서 클라이언트 측 코드 (CSS 또는 JS)에 대한 클래스 및 금지 ID가 필요하기 때문에 추가 오버 헤드의 가치가 없기 때문입니다. 클래스는 ID로 잘 작동 할 수 있습니다. 많은 고유 한 (일회용) 클래스를 사용하는 것을 방해하는 것은 없으며 유지 관리의 관점에서이 방법으로 작업하는 데 실제 문제는 없습니다.

+0

을 된 ClientID를 대체 할 수 있습니다 페이지에서 내게 말하고있다 :'<% = MyControl.ClientID %>'그래서'='를 사용해야하는지 잘 모르겠다. – Si8

+0

@ SiKni8이 맞습니다. 자세한 내용은 다음을 참조하십시오. http://stackoverflow.com/questions/197047/what-is-the-difference-between-and –

0

여러 가지 방법으로 가능할 수 있지만 어느 것도 우아한 것은 아닙니다.

당신은 생성 된 아이디의 예측할 수 있습니다

#ctl$00_mycontainer_idofmylabel 
{ 
    padding: 100px; 
} 

당신은 동적으로 CSS 클래스 이름을 만들 수

cssLiteral.Text = "#" + myLabel.ClientID + @"{ padding: 100px; }"; 

당신은 당신의 레이블 다른에서

myCustomLabel.ClientID = "myHandCraftedId" // where myCustomLabel is an instance of some CustomLabel class that extends Label and overrides ClientID property. 
관련 문제