CSS는 여러 클래스 이름을 지원합니다.ASP.NET 테마를 사용하여 컨트롤에 여러 cssclass 이름을 설정하는 방법
<hwc:DropDownList ID="ddlRoomType" runat="server" class="invisible blue" EnableTheming="true" />
스킨 파일 :
<%-- Default dropdown appearance --%>
<asp:DropDownList runat="server" CssClass="dropDownList" AutoPostBack="true"/>
그리고 asp.net 테마는 추가 스킨 및 속성 추상화 레이어를 제공합니다. 그래서 나는 고전적인 CSS 스타일링과 asp.net 테마링 결합 시나리오에 대해 이야기하고 있습니다.
하지만 asp.net 테마를 사용하여 수동으로 CssClass (또는 클래스) 특성을 제공 할 때 다른 것을 재정의하는 선택을해야합니다.
우리는 수동으로 입력 한 클래스 이름을 asp.net 테마로 만든 동적 클래스 이름과 결합하여 아래와 같이 html 출력을 생성 할 수 있습니다.
<select id="ctl00_Content_ddlRoomType" class="invisible blue dropDownList">
<option value="0">- Select Room -</option>
<option value="9">Single Room</option>
</select>
다른 테마 로직을 구현하기 위해 재정의 할 .net 테마 클래스를 찾을 수 없습니다. 어떤 아이디어? 감사.
클래스 이름을 연결하려면 먼저 드롭 다운 컨트롤 클래스에서 CssClass 값 ("dropdownlist +"과 같은 표현식)을 얻어야합니다. 하지만 테마 활성화 모드에서 나는 컨트롤의 OnInit 이벤트에서도 대체 된 값 (드롭 다운 목록) 만 가져올 수 있습니다. Theming 이벤트는 작동하고, 컨트롤과 페이지 클래스 이벤트 전에 값을 대체합니다. 따라서 작업을 수행하기 전에 일부 이벤트를 잡아야합니다. 그럼 당신의 솔루션을 쉽게 구현할 수 있습니다. 감사합니다. –
일반 테마 대신 StyleSheetTheme으로 전환하여 시작할 수도 있습니다. 전자의 경우 페이지의 스킨 속성을 무시할 수 있습니다. 페이지에서 프로그래밍 방식으로 CssClass 속성을 설정할 수 있습니다. 이를 자동화하기 위해, 필자는 대답에서 설명한대로 컨트롤 어댑터 또는 파생 클래스가 필요합니다. – RickNZ