다음을 통해 공유


<Choice> 요소(.NET Framework 개발자 가이드)

업데이트: 2007년 11월

<DeviceSpecific>/<Choice> 구문의 여러 선택 항목 집합 중에서 선택 항목 하나를 제공합니다. 렌더링을 수행하는 동안 대상 장치의 특성을 기준으로 <DeviceSpecific> 요소 내의 선택 항목 중 하나가 선택됩니다.

<Choice> 요소에는 템플릿이 개수에 제한 없이 포함될 수 있으며 <Choice> 요소에 템플릿이 포함된 경우에는 이 요소를 템플릿 집합으로 사용할 수 있습니다. 자세한 내용은 템플릿 집합 및 템플릿 기반 컨트롤을 참조하십시오.

또한 <Choice> 요소에는 부모 컨트롤 또는 스타일의 속성을 재정의하는 속성도 포함될 수 있습니다. 다음과 같은 속성 형식을 재정의할 수 있습니다.

  • 선언적으로 리터럴 값으로 설정할 수 있는 모든 속성(ID 및 runat 특성 제외). 컨트롤의 DataSource 속성과 같이 개체로 설정되는 속성은 설정할 수 없습니다.

  • 모든 이벤트 처리기 속성. 재정의 이벤트 처리기는 기존 이벤트 처리기에 추가될 수 있지만 기존 이벤트 처리기를 바꾸지는 않습니다.

  • 모든 사용자 지정 특성. 컨트롤에 대해 사용자 지정 특성을 정의할 수 있는 페이지의 경우, 인식되지 않는 모든 속성은 사용자 지정 특성으로 저장됩니다.

    참고:

    기본 선택 항목은 장치 선택 항목 중에서 항상 마지막 항목이어야 합니다. 기본 선택 항목은 항상 선택되므로 마지막 항목이 아닐 경우 기본 항목 다음에 나오는 선택 항목은 아예 평가되지 않습니다. <Choice> 요소 안에 선언할 수 있는 추가 특성 수에는 제한이 없으므로 장치별로 상위 컨트롤의 속성을 설정할 수 있습니다. 컨트롤의 <Choice> 요소를 선택하면 각각의 추가 특성은 상위 컨트롤의 해당 속성을 재정의하는 데 사용됩니다.

<Choice Filter="deviceFilterName"
    Other attributes here.>
        templates
</Choice>

속성

속성

설명

Filter

평가할 장치 필터를 지정합니다. 이 속성을 생략하면 기본 선택 항목이 사용됩니다.

Contents

선택 항목에 대해 정의된 재정의 속성을 반환합니다. 재정의된 속성을 OnDeviceCustomize에서 처리한 후에는 이 컬렉션을 변경해도 아무 효과가 없습니다.

HasTemplates

<Choice> 요소에 템플릿이 정의되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

Templates

<Choice> 요소에 정의된 템플릿 집합을 반환합니다.

Xmlns

<Choice> 요소의 템플릿 안에 사용되는 태그 형식을 결정하기 위해 디자이너에서 사용합니다. 일반 개발자는 이 속성을 사용할 수 없습니다.

필터 이름은 페이지 또는 관련 .ascx 파일에 있는 메서드 이름이거나 Web.config 파일의 <deviceFilters> 섹션에 정의된 유효한 장치 필터 이름이어야 합니다. Filter 속성에 메서드 이름이 지정된 경우, 이 메서드에는 다음 시그니처가 있어야 합니다.

public bool methodName(
    System.Web.Mobile.MobileCapabilities capabilities,
    String optionalArgument)

예를 들어, Filter 속성이 myChoiceMethod로 설정된 경우에는 다음과 같은 시그니처를 갖는 메서드가 있어야 합니다.

public bool myChoiceMethod(
    System.Web.Mobile.MobileCapabilities capabilities, 
    String optionalArgument)

<Choice> 요소를 평가할 때는 적절한 시그니처를 가진 메서드가 페이지에 있는지 확인하고 페이지에 메서드가 없으면 Web.config 파일의 <deviceFilters> 섹션에 대해 검사가 수행됩니다.

장치 필터 평가에 대한 자세한 내용은 장치별 렌더링Filter 속성에 대한 설명서를 참조하십시오.

설명

자세한 예제는 Filter 속성을 참조하십시오.

코드

<DeviceSpecific>
  <Choice Filter = "isHTML32">
    <HeaderTemplate>
      <mobile:Image runat=server ImageUrl="defaul1.gif" />
    </HeaderTemplate>
  </Choice>
  <Choice Filter="prefersWBMP">
    <HeaderTemplate>
      <mobile:Image  ImageUrl="default1.wbmp" />
        Wbmp Image<br />
    </HeaderTemplate>
  </Choice>
</DeviceSpecific>

참고 항목

개념

장치별 렌더링

장치 템플릿 지원

템플릿 집합 및 템플릿 기반 컨트롤

참조

<deviceFilters>