DetailsView 웹 서버 컨트롤 개요

업데이트: 2007년 11월

DetailsView 컨트롤은 데이터 소스의 단일 레코드를 표시합니다. 여기서 각 데이터 행은 레코드의 필드를 나타냅니다. 이 컨트롤은 종종 GridView 컨트롤과 함께 마스터/세부 사항 시나리오에 사용됩니다.

이 항목의 내용은 다음과 같습니다.

  • 배경

  • 코드 예제

  • 클래스 참조

배경

DetailsView 컨트롤을 사용하면 레코드를 한 번에 하나씩 표시, 편집 또는 삽입하거나 연결된 데이터 소스에서 삭제할 수 있습니다. 기본적으로 DetailsView 컨트롤에서는 레코드의 각 필드를 컨트롤의 줄에 표시합니다. DetailsView 컨트롤은 대개 새 레코드를 업데이트하거나 삽입할 때 사용되지만, 마스터 컨트롤의 선택된 레코드에 따라 DetailsView 컨트롤에 표시할 레코드가 결정되는 마스터/세부 사항 시나리오에 사용되기도 합니다. DetailsView 컨트롤은 데이터 소스에서 여러 레코드를 제공하는 경우에도 데이터 레코드를 한 번에 하나만 표시합니다.

DetailsView 컨트롤은 데이터 소스 컨트롤의 기능에 의존하여 레코드를 업데이트하고 삽입하고 삭제하는 등의 작업을 수행합니다. DetailsView 컨트롤은 정렬을 지원하지 않습니다.

데이터가 ICollection 인터페이스를 지원하는 개체로 표현된 경우나 내부 데이터 소스에서 페이징을 지원하는 경우 DetailsView 컨트롤은 연결된 데이터 소스의 데이터를 자동으로 페이징합니다. DetailsView 컨트롤은 데이터 레코드를 탐색하는 데 사용할 수 있는 UI(사용자 인터페이스)를 제공합니다. 페이징 동작을 사용하려면 AllowPaging 속성을 true로 설정합니다.

연결된 데이터 소스에서 특정 레코드를 선택하려면 해당 레코드로 페이징합니다. DetailsView 컨트롤에 표시된 레코드는 현재 선택된 레코드입니다.

DetailsView 컨트롤을 사용한 데이터 바인딩

DetailsView 컨트롤에서는 다음 방법으로 데이터에 바인딩할 수 있습니다.

  • DataSourceID 속성을 사용하여 데이터를 바인딩합니다. 이 방법을 사용하면 DetailsView 컨트롤을 데이터 소스 컨트롤에 바인딩할 수 있습니다. 이 방법은 DetailsView 컨트롤에서 데이터 소스 컨트롤의 기능을 이용하고 업데이트 및 페이징을 위한 기능을 기본적으로 제공할 수 있는 방법이므로 권장됩니다.

  • DataSource 속성을 사용한 데이터 바인딩 - 이 방법을 사용하면 ADO.NET 데이터 집합 및 데이터 판독기를 비롯한 다양한 개체에 바인딩할 수 있습니다. 이 방법을 사용하려면 업데이트 및 페이징 등의 추가 기능을 위한 코드를 작성해야 합니다.

DataSourceID 속성을 사용하여 데이터 소스에 바인딩하는 경우 DetailsView 컨트롤에서는 양방향 데이터 바인딩을 지원합니다. 즉, 컨트롤에서 데이터를 표시할 수 있을 뿐 아니라 바인딩된 데이터에 대한 삽입, 업데이트 및 삭제 작업도 자동으로 지원할 수 있습니다.

DetailsView 컨트롤 데이터를 사용한 작업

DetailsView 컨트롤은 데이터 소스 컨트롤에 바인딩하며, 데이터 소스 컨트롤은 데이터 저장소에 연결하고 선택된 데이터를 반환하는 작업을 처리합니다. DataSourceID 속성을 선언적으로 설정하면 간단하게 DetailsView 컨트롤을 데이터에 바인딩할 수 있습니다. 코드에서 데이터 소스에 바인딩할 수도 있습니다.

편집 기능을 사용하려면 AutoGenerateEditButton 속성을 true로 설정합니다. 그러면 DetailsView 컨트롤에 데이터 필드뿐 아니라 편집 단추도 렌더링됩니다. 편집 단추를 클릭하면 DetailsView 컨트롤이 편집 모드로 설정됩니다. 편집 모드에서 DetailsView 컨트롤의 CurrentMode 속성은 ReadOnly에서 Edit로 변경되고 컨트롤의 각 필드에는 텍스트 상자나 확인란과 같은 편집 UI가 렌더링됩니다. 스타일, DataControlField 개체 및 템플릿을 사용하여 편집 UI를 사용자 지정할 수도 있습니다.

참고:

DetailsView 컨트롤에서 편집을 지원하기 위해서는 바인딩된 데이터 소스에서 데이터에 대한 업데이트 작업을 지원해야 합니다.

삭제삽입 단추가 표시되도록 DetailsView 컨트롤을 구성하면 데이터 소스에서 해당 데이터 레코드를 삭제하거나 새 데이터 레코드를 삽입할 수 있습니다. AutoGenerateEditButton 속성과 마찬가지로, DetailsView 컨트롤의 AutoGenerateInsertButton 속성이 true로 설정되어 있으면 새로 만들기 단추가 렌더링됩니다. 새로 만들기 단추를 클릭하면 DetailsView 컨트롤의 CurrentMode 속성이 Insert로 변경됩니다. 바인딩된 필드의 InsertVisible 속성이 false로 설정되어 있지 않으면 DetailsView 컨트롤에서는 바인딩된 각 필드에 적절한 UI 입력 컨트롤을 렌더링합니다.

DetailsView 컨트롤 사용자 인터페이스 사용자 지정

DetailsView 컨트롤은 BoundField, CommandField 또는 HyperLinkField 형식의 DataControlField 개체가 포함된 Fields 컬렉션 속성을 지원합니다. 이 기능은 DetailsView 컨트롤이 각 필드를 열 대신 행으로 렌더링한다는 점을 제외하고는 GridView 컨트롤의 Columns 컬렉션과 유사합니다.

GridView 컨트롤과 마찬가지로 DetailsView 컨트롤에서도 HeaderStyle, RowStyle, AlternatingRowStyle, CommandRowStyle, FooterStyle, PagerStyleEmptyDataRowStyle 속성 등의 스타일 속성을 사용하여 컨트롤의 UI를 사용자 지정할 수 있습니다.

DetailsView 컨트롤에는 템플릿을 통한 사용자 지정 기능이 추가되어 일부 요소의 렌더링을 보다 세부적으로 제어할 수 있습니다. DetailsView 컨트롤에 대한 사용자 고유의 EmptyDataTemplate, HeaderTemplate, FooterTemplatePagerTemplate 속성을 정의할 수 있습니다. Fields 컬렉션에 TemplateField 개체를 추가하여 개별 필드에 대한 템플릿을 만들 수도 있습니다.

DetailsView 컨트롤에서는 사용자 고유의 코드를 실행하기 위해 처리할 수 있는 몇 가지 이벤트를 노출합니다. 이러한 이벤트는 연결된 데이터 소스 컨트롤의 삽입, 업데이트 및 삭제 작업이 수행되기 전후에 발생합니다. ItemCreatedItemCommand 이벤트에 대한 처리기를 작성할 수도 있습니다. 자세한 내용은 DetailsView 웹 서버 컨트롤 이벤트를 참조하십시오.

참고:

DetailsView 컨트롤의 이벤트 모델은 GridView 컨트롤의 이벤트 모델과 비슷합니다. 그러나 DetailsView 컨트롤에서는 항상 현재 레코드가 선택된 항목이기 때문에 선택 이벤트를 지원하지 않습니다.

맨 위로 이동

코드 예제

연습: DetailsView 웹 서버 컨트롤을 사용하여 웹 페이지에서 데이터 편집 및 삽입

연습: LinqDataSource 및 DetailsView 컨트롤에서 정보 검색, 업데이트, 삽입 및 삭제

DetailsView 웹 서버 컨트롤의 페이징

DetailsView 웹 서버 컨트롤을 사용하여 데이터 수정

DetailsView 웹 서버 컨트롤에서 사용자 지정 행 만들기

맨 위로 이동

클래스 참조

다음 표에서는 DetailsView 컨트롤과 관련된 핵심 클래스를 보여 줍니다.

멤버

설명

DetailsView

컨트롤의 기본 클래스입니다.

맨 위로 이동

참고 항목

개념

DetailsView 웹 서버 컨트롤 이벤트

ASP.NET 데이터 액세스 개요

ASP.NET 웹 서버 컨트롤 템플릿

참조

GridView 웹 서버 컨트롤 개요

기타 리소스

ASP.NET을 사용하여 데이터 액세스