다음을 통해 공유


GridView 및 DataGrid 웹 서버 컨트롤 비교

업데이트: 2007년 11월

GridView 컨트롤은 DataGrid 컨트롤의 후속 컨트롤입니다. GridView 컨트롤은 DataGrid 컨트롤과 마찬가지로 데이터를 HTML 표로 표시하도록 디자인되었습니다. 데이터 소스에 바인딩되면 DataGridGridView 컨트롤은 모두 DataSource의 행을 출력 표의 행으로 표시합니다.

DataGridGridView 컨트롤은 모두 WebControl 클래스에서 파생됩니다. GridView 컨트롤의 개체 모델은 DataGrid 컨트롤의 개체 모델과 유사하지만 DataGrid 컨트롤에 비해 더 새롭고 뛰어난 기능이 여러 가지 포함되어 있습니다. 예를 들면 다음과 같습니다.

  • 다양한 디자인 타임 기능

  • 향상된 데이터 소스 바인딩 기능

  • 정렬, 페이징, 업데이트 및 삭제 자동 처리

  • 추가 열 형식 및 디자인 타임 열 작업

  • PagerTemplate 속성이 있는 사용자 지정 페이저 UI(사용자 인터페이스)

GridView 컨트롤과 DataGrid 컨트롤의 차이점은 다음과 같습니다.

  • 사용자 지정 페이징 지원 여부

  • 이벤트 모델

향상된 디자인 타임 기능

DataGrid 컨트롤을 사용할 경우 데이터의 정렬, 페이징 및 내부 편집을 위해서는 추가 코딩이 필요합니다. 그러나 GridView 컨트롤을 사용하면 정렬, 페이징 및 편집 기능을 추가하기 위해 코드를 작성할 필요가 없습니다. 대신 컨트롤의 속성을 설정하여 이러한 작업을 데이터 소스에 대한 데이터 바인딩 등의 일반적인 다른 작업과 함께 자동화할 수 있습니다.

Microsoft Visual Studio 등의 디자이너 프로그램에서 작업할 경우 GridView 컨트롤의 기본 제공 디자이너 기능을 사용할 수 있습니다. GridView 컨트롤에서는 속성 설정 및 템플릿 편집 시작 등의 일반적인 작업을 수행하는 데 편리한 인터페이스를 제공하는 스마트 태그 패널을 지원합니다.

향상된 데이터 소스 바인딩 기능

일반적으로 DataSet 컨트롤, DbDataReader 컨트롤 또는 컬렉션(예: Array, ArrayList 또는 System.Collections 네임스페이스에 있는 다른 클래스)은 DataGrid 컨트롤이나 GridView 컨트롤의 DataSource 속성에 할당됩니다. DataGrid 컨트롤과 GridView 컨트롤은 IEnumerable 또는 IListSource 인터페이스를 구현하는 모든 개체를 바인딩할 수 있습니다.

DataGrid 컨트롤은 DataSourceControl 컨트롤을 선언적으로 바인딩할 수 있지만 이는 데이터 선택의 경우에만 해당됩니다. 정렬, 페이징, 업데이트 및 삭제는 수동으로 코딩해야 합니다. GridView 컨트롤에서는 IDataSource 인터페이스를 구현하는 개체를 사용하는 DataSourceID 속성을 지원합니다. 따라서 SqlDataSource 컨트롤 같은 데이터 소스 컨트롤의 정렬, 페이징, 업데이트 및 삭제 기능을 사용할 수 있습니다.

추가 열 형식

GridView 컨트롤은 BoundField, HyperLinkField, ButtonField, CommandFieldImageFieldCheckBoxField 열 형식을 지원합니다.

기본 제공 및 사용자 지정 페이징 지원

DataGrid 컨트롤에서 페이징하려면 추가 코딩이 필요합니다. GridView 컨트롤에서는 PagerSettings 속성을 설정하면 페이징이 자동으로 지원됩니다. PagerSettings 속성은 Numeric(기본값), NextPrevious, NumericFirstLastNextPreviousFirstLast라는 네 가지 모드를 지원합니다. Numeric 모드는 "next/prev" 링크 대신 번호가 매겨진 페이지 링크를 표시하고 NumericFirstLast 옵션은 첫 번째 및 마지막 페이지 링크를 추가합니다. GridView 컨트롤의 PagerStyle 속성은 페이저의 스타일과 위치를 설정하는 데 사용할 수 있습니다.

또한 PagerTemplate을 사용하여 GridView 컨트롤의 페이저 단추를 사용자 지정할 수 있습니다.

DataGrid 컨트롤의 사용자 지정 페이징 지원은 GridView 컨트롤에서 제공하는 AllowCustomPaging 메커니즘과는 달리 바인딩된 데이터 소스 컨트롤에서 제공합니다.

확장된 이벤트 모델

DataGrid 컨트롤과 GridView 컨트롤의 이벤트 모델에는 차이점이 있습니다.

DataGrid 컨트롤은 작업에 대한 이벤트만 발생시키는 반면, GridView 컨트롤은 작업 전 이벤트와 작업 후 이벤트를 모두 사용할 수 있습니다. GridView 컨트롤은 필드 정렬 시 발생하는 Sorting 이벤트를 지원합니다. 이 정렬 이벤트는 GridView 컨트롤에서 자동으로 정렬 작업을 처리하기 전에 발생하며 이 때 SortExpression 속성을 검사 또는 변경하거나, 전달된 이벤트 인수에서 Cancel 속성을 true로 설정하여 이 작업을 취소할 수 있습니다.

GridView 컨트롤은 GridView 컨트롤이 정렬 작업을 완료한 후에 발생하는 Sorted 이벤트를 지원하며, 이 이벤트가 발생할 때 정렬 작업의 결과를 변경하거나 서식을 지정할 수 있습니다. 그러나 DataGrid 컨트롤은 열이 정렬될 때 발생하는 SortCommand 이벤트를 지원합니다. 또한 GridView 컨트롤은 GridView 컨트롤이 업데이트 작업을 자동으로 처리하기 전과 후에 발생하는 RowUpdatingRowUpdated 이벤트를 지원합니다. 그러나 DataGrid 컨트롤은 표 항목의 Update 단추가 클릭될 때 발생하는 UpdateCommand 이벤트를 지원합니다.

GridView 이벤트에 대한 자세한 내용은 GridView 웹 서버 컨트롤 이벤트를 참조하십시오.

참고 항목

개념

GridView 웹 서버 컨트롤의 페이징

GridView 웹 서버 컨트롤의 데이터 수정

연습: GridView 웹 서버 컨트롤에 대한 간단한 정렬