다음을 통해 공유


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

업데이트: 2007년 11월

GridView 컨트롤에서는 사용자가 프로그래밍할 필요 없이 레코드를 편집하거나 삭제하는 데 사용할 수 있는 기능을 기본적으로 제공합니다. 이벤트와 템플릿을 사용하여 GridView 컨트롤의 편집 또는 삭제 기능을 사용자 지정할 수 있습니다.

기본 제공 편집 기능을 사용하도록 설정

다음 방법으로 GridView 컨트롤의 기본 제공 편집 또는 삭제 기능을 사용하도록 설정할 수 있습니다.

GridView 컨트롤의 편집 동작

GridView에서는 사용자가 각 행의 내용을 편집하는 데 사용할 수 있는 UI(사용자 인터페이스)를 표시할 수 있습니다. 일반적으로 편집할 수 있는 모눈에는 사용자가 행을 편집 모드로 설정하기 위해 클릭할 수 있는 단추 또는 링크가 들어 있는 열이 포함되어 있습니다. 기본적으로 표시되는 단추 캡션은 "편집"입니다.

사용자가 변경 내용을 저장하면 GridView 컨트롤에서는 DataSourceID 속성으로 지정된 데이터 소스 컨트롤에 변경 내용과 기본 키 정보를 전달하고 데이터 소스 컨트롤에서는 적절한 업데이트 작업을 호출합니다. 예를 들어, SqlDataSource 컨트롤에서는 변경된 데이터를 매개 변수 값으로 사용하여 SQL Update 문을 실행합니다. ObjectDataSource 컨트롤에서는 변경 내용을 매개 변수로 전달하여 업데이트 메서드를 호출합니다.

GridView 컨트롤에서는 Keys 사전, NewValues 사전 및 OldValues 사전에서 업데이트 또는 삭제 작업을 수행할 수 있도록 데이터 소스에 값을 전달합니다. GridView 컨트롤의 업데이트 또는 삭제 이벤트에 전달된 인수를 사용하여 각 사전에 액세스할 수 있습니다.

Keys 사전에는 업데이트 또는 삭제할 레코드를 고유하게 식별하는 필드 이름 및 값과 키 필드의 원래 값이 필수적으로 들어 있습니다. Keys사전에 포함할 필드를 지정하려면 DataKeyNames 속성을 데이터의 기본 키를 나타내는 필드 이름의 쉼표 구분 목록으로 설정합니다. DataKeysDataKeyNames 속성에 지정된 필드와 연결된 값으로 자동으로 채워집니다.

참고:

DataKeyNames 속성에 지정된 필드에 대한 원래 기본 키 값은 뷰 상태에 저장됩니다. 기본 키 값에 중요한 정보가 포함된 경우 페이지의 ViewStateEncryptionMode 속성을 Always로 설정하여 뷰 상태 내용을 암호화해야 합니다.

NewValues 사전에는 편집되는 행의 입력 컨트롤에서 가져온 현재 값이 들어 있습니다. OldValues 사전에는 Keys 사전에 포함된 키 필드를 제외한 필드의 원래 값이 들어 있습니다.

데이터 소스 컨트롤에서는 Keys, NewValues 및 OldValues 사전의 값을 업데이트 또는 삭제 명령의 매개 변수로 사용합니다. 바인딩된 값에 대해 만든 사전을 기반으로 데이터 소스 컨트롤 매개 변수가 생성되는 방식에 대한 자세한 내용은 데이터 소스 컨트롤에서 데이터 바인딩된 필드에 대해 매개 변수가 생성되는 방식을 참조하십시오.

이러한 모든 사전의 내용을 검사하거나 사용자 지정한 후에 RowUpdating 또는 RowDeleting 이벤트를 처리하여 데이터 소스로 전달할 수 있습니다. 업데이트 또는 삭제가 완료되면 GridView 컨트롤에서 RowUpdated 또는 RowDeleted 이벤트를 발생시킵니다. 이러한 이벤트를 사용하여 무결성 검사와 같은 쿼리 후 논리를 수행할 수 있습니다.

업데이트 또는 삭제가 완료되고 모든 이벤트가 발생한 후에는 GridView 컨트롤이 데이터 소스 컨트롤에 다시 바인딩되어 업데이트된 데이터를 표시합니다.

참고:

GridView 컨트롤에서 업데이트 가능한 필드의 원래 값은 ViewState에 저장됩니다. 업데이트 가능한 GridView 컨트롤이 포함된 ASP.NET 페이지에서 ViewState가 비활성화된 경우, 낙관적 동시성 검사에서 GridView 컨트롤이 데이터 소스에 처음 바인딩되었을 때 검색된 업데이트 가능한 기본 키 필드를 사용할 수 없습니다. 업데이트나 삭제를 수행하기 위해 페이지에서 다시 게시하면 ViewState에 값이 저장되어 있지 않으므로 데이터베이스에서 현재 값이 검색되어 GridView 컨트롤에서 업데이트 가능한 기본 키 필드의 원래 값으로 사용됩니다. 그런 다음 이러한 원래 값을 사용하여 업데이트나 삭제 작업이 수행됩니다. GridView 컨트롤을 처음 채운 후 원래 값이 변경된 경우 업데이트나 삭제 작업은 성공하지만 낙관적 동시성 검사에서 정상적으로 실패를 보고하지 않습니다.

GridView 컨트롤의 편집 사용자 인터페이스 사용자 지정

편집 모드에서 모든 데이터 필드에 표시되는 컨트롤 형식 등의 편집 UI 요소를 사용자 지정할 수 있습니다. 자동 양방향 데이터 바인딩을 사용하면 사용자 지정 컨트롤에서 편집 가능하거나 편집된 값을 데이터 저장소에 제공하거나 데이터 저장소에서 가져올 수 있습니다.

참고:

데이터 소스 컨트롤의 Update 문을 변경하거나 GridView 컨트롤의 열을 다시 정렬할 경우에는 항상 GridView 컨트롤이 데이터 소스에 전달하는 값과 해당 데이터 소스 구성이 대응되도록 지정해야 합니다.

참고 항목

개념

데이터 소스 컨트롤 개요

참조

GridView 웹 서버 컨트롤 개요