다음을 통해 공유


DataGrid 열

DataGrid 웹 서버 컨트롤을 사용하여 작업하면 다양한 형식의 열을 모눈 안에 만들 수 있습니다.

  • 바인딩된 열
  • 단추 열
  • 하이퍼링크 열
  • 템플릿 열

또한 모눈의 데이터 소스에 있는 정보를 기반으로 모눈 안에 자동으로 열을 생성할 수도 있습니다.

자동으로 생성된 열

DataGrid 컨트롤의 AutoGenerateColumn 속성이 true로 설정된 경우, 데이터 소스의 바인딩 가능한 각 열에 대해 바인딩된 열이 생성되고 표시됩니다. 바인딩 가능한 열의 형식에는 기본 형식, String, DateTime 및 Decimal이 있습니다. 데이터 소스에 지원되지 않는 열 형식을 가진 필드가 있으면 컨트롤에서 해당 필드에 대해서는 열을 만들지 않습니다. 데이터 소스에 적어도 하나의 바인딩 가능한 열이 있으면 DataGrid 컨트롤은 소스에 바인딩하여 바인딩 가능한 열을 생성하고 그 외의 열은 무시합니다. AutoGenerateColumnstrue인 상태에서 명시적으로 열을 만들면 모눈에는 이 명시적 열과 자동으로 생성된 열이 모두 표시됩니다.

자동으로 생성된 열을 사용하면 모눈에 정보를 빠르고 쉽게 표시할 수 있습니다. 자동으로 생성된 열은 런타임에 자동으로 생성되고 데이터 소스에서 생성된 순서대로 표시되기 때문에 이 열의 레이아웃을 자유롭게 구성할 수는 없습니다. 따라서 자동으로 생성된 열은 간단하게 데이터를 표시하는 경우, 프로토타입 페이지를 만드는 경우 및 열의 레이아웃에 세심한 신경을 쓸 필요가 없는 경우 등에 주로 사용하는 것이 좋습니다. 직접 표시할 열을 선택하고 그 순서를 결정하려면 명시적으로 열을 정의해야 합니다.

바인딩된 열

바인딩된 열(BoundColumn 요소)에는 데이터 소스의 열 중 하나의 내용이 표시됩니다. 보통 표시할 모든 데이터 열에 대해 하나의 바인딩된 열을 모눈에 추가합니다. 모눈에 표시할 데이터 열을 선택할 때는 바인딩된 열을 사용합니다. 또한 바인딩된 열을 사용하면 다양한 속성을 설정하여 다음과 같은 특성을 지정할 수 있습니다.

  • 열 머리글과 바닥글의 텍스트, 글꼴 및 색상
  • 열 너비
  • 날짜 형식
  • 열의 읽기 전용 여부, 즉 행이 편집 모드 상태일 때 편집 가능한 컨트롤이 표시되는지 여부

Visual Studio Web Forms 디자이너에서 바인딩된 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤에 바인딩된 열 추가를 참조하십시오. 바인딩된 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤을 참조하십시오.

단추 열

단추 열을 사용하면 단추가 있는 모눈 열을 추가하여 현재 행 선택, 삭제, 편집 모드 전환 등 특정 행에 적용되는 기능을 수행할 수 있습니다. 미리 정의된 기능에 대한 단추를 만들 수도 있고 또는 "장바구니에 추가" 단추처럼 새로운 기능을 만들 수도 있습니다.

다음과 같이 두 종류의 제약 조건을 정의할 수 있습니다.

  • EditCommandColumn 요소는 세 가지 단추를 포함하도록 미리 정의되어 있습니다. 디스플레이 모드에서 이 열에는 편집 단추가 표시됩니다. 이 단추를 클릭하면 행을 편집 가능한 컨트롤이 있는 편집 모드로 전환할 수 있습니다. 행이 편집 모드가 되면 편집 단추는 업데이트 단추와 취소 단추 두 개로 바뀝니다. 단추의 텍스트(캡션)를 지정할 수 있습니다.
  • ButtonColumn 요소에는 임의의 단추가 포함될 수 있습니다. ButtonColumn 요소를 사용하면 행 선택 및 삭제와 같은 미리 정의된 특정 기능을 정의할 수 있고 직접 지정한 기능을 수행하는 단추를 만들 수도 있습니다.

단추 열에 대한 단추를 정의할 때는 단추의 텍스트(캡션)와 단추의 종류(LinkButton 또는 Button)을 지정합니다. 또한 ButtonColumn 요소의 단추에 대해 특수 CommandName 속성을 지정합니다. 이 속성의 설정에 따라 단추를 클릭할 때 발생하는 동작이 결정됩니다. 예를 들어, 아래 코드는

설정값 결과
Select 단추를 클릭하면 행이 자동으로 선택됩니다.
Delete 단추를 클릭하면 DataGrid 컨트롤의 DeleteCommand가 발생합니다.
사용자 지정 값(미리 정의되지 않은 값) 단추를 클릭하면 DataGrid 컨트롤의 일반 ItemCommand가 발생합니다.

참고   CommandName 속성을 설정할 때는 대/소문자를 구분해야 합니다.

대부분의 경우, 단추를 클릭하면 사용자가 처리하는 이벤트가 발생합니다. CommandName 속성이 "Select"로 설정된 경우에도 이벤트가 발생하지만, 이 이벤트도 모눈에 의해 자동으로 처리되어 지정된 행이 선택됩니다. 일반적으로 처리기에서는 해당 처리기에 의해 영향을 받는 행을 결정하고 이에 대한 적절한 동작을 결정합니다. 예를 들어, 해당 행을 편집 모드로 설정하거나 취소하고, 이 모눈 행이 나타내는 데이터 행을 삭제하는 등의 동작을 결정할 수 있습니다. 사용자 지정 단추를 클릭하면 모눈에서 ItemCommand 이벤트가 발생하고 CommandName 속성의 값은 EventArgs 개체의 일부로 전달됩니다.

Visual Studio Web Forms 디자이너에서 단추 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤에 단추 열 추가를 참조하십시오. 단추 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤을 참조하십시오.

단추 열의 기능을 구현하는 방법에 대한 내용은 다음 항목을 참조하십시오.

하이퍼링크 열

하이퍼링크 열(HyperLinkColumn 요소)에서는 각 행에 링크가 표시됩니다. 하이퍼링크에 정적 텍스트를 지정하거나 데이터 열에서 링크 텍스트를 가져올 수 있습니다. 마찬가지로, 정적 URL을 링크 대상으로 지정하거나 데이터 소스에서 URL을 가져올 수 있습니다.

Visual Studio Web Forms 디자이너에서 하이퍼링크 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤에 하이퍼링크 열 추가를 참조하십시오. 단추 열을 HTML 요소로 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤을 참조하십시오.

템플릿 열

템플릿 열을 사용하면 임의의 컨트롤 및 정적 텍스트를 결합하여 열에 사용할 사용자 지정 레이아웃을 만들 수 있습니다. 템플릿 열은 DataListRepeater 컨트롤에 사용되는 템플릿과 비슷합니다. 그 차이점은, 행 종류의 항목에 대해서가 아니라 단지 열에 대해서만 레이아웃을 만든다는 것입니다. 템플릿에 대한 자세한 내용은 웹 서버 컨트롤 템플릿.을 참조하십시오.

템플릿 열을 사용하면 열의 내용을 완벽하게 제어할 수 있기 때문에 컬럼의 레이아웃을 최대한 자유롭게 만들 수 있습니다. 그 예는 다음과 같습니다.

  • 정적 텍스트와 컨트롤을 쉽게 결합할 수 있습니다.
  • 편집 모드에서 사용되는 컨트롤을 지정할 수 있습니다. 바인딩된 열이 편집 모드 상태이면 편집되는 데이터 형식에 상관 없이 텍스트 상자가 표시됩니다. 템플릿 컨트롤을 사용하면 확인란, 드롭다운 목록 또는 대신 사용할 기타 적절한 컨트롤을 지정할 수 있습니다.

템플릿 열 안에는 네 개까지의 개별 템플릿 형식을 만들 수 있습니다.

  • HeaderTemplateFooterTemplate은 각각 열 머리글 및 바닥글에 표시될 내용을 정의합니다.
  • The ItemTemplate defines how information appears in the column when the row is in display mode. 보통 Label 또는 Literal 컨트롤 등의 컨트롤을 추가하여 데이터를 표시할 수 있습니다.
  • EditItemTemplate은 열이 편집 모드일 때 열에 표시되는 컨트롤과 텍스트(적용 가능한 경우)를 정의합니다. 보통 이 경우에는 텍스트 상자, 확인란 및 드롭다운 목록이 포함됩니다.

Visual Studio Web Forms 디자이너에서 템플릿 열을 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤에 템플릿 열 추가를 참조하십시오. 템플릿 열을 HTML 요소로 만드는 만드는 방법에 대한 자세한 내용은 DataGrid 웹 서버 컨트롤을 참조하십시오.

참고 항목

DataGrid 웹 서버 컨트롤 소개 | DataGrid 웹 서버 컨트롤