2010-02-16 4 views
4

Howdy, vs2008 winforms 사용.바운드 데이터 격자 뷰 사용자 정의

약간 사용자 정의 된 DataGridview를 사용할 수 있기를 원하지만이를 수행 할 방법이 없다고 생각합니다.

제가 1. sqldataadaptor 데이터 셋 2. 집합 3 소스로 설정 BindingSource에 함께 결합 된 DataGridView 바인딩 소스 채우기있다.

바인딩을 사용하여 데이터 집합과 datagridview 간의 동기화를 허용하므로 데이터를 편집 한 다음 sqldataadaptor를 사용하여 데이터베이스를 업데이트 할 수 있습니다. 최신 정보.

계산 결과 인 사용자 정의 열을 표시하려고합니다. 그리고 DVG의 모든 열을 합한 마지막 맨 아래 행을 표시하려고합니다.

내 문제는 일단 DGV가 바인딩되어 사용자 지정 열이나 행을 추가 할 수 없으면 알려주지 않습니다. 기본 데이터 소스 인 데이터 세트에 직접 추가 할 수 있지만 편집이 완료되면 데이터 세트의 구조를 데이터베이스로 업데이트 할 수 없다는 것을 알고 있습니다.

또는 i ???

누군가 내 맞춤식 열과 최종 총 행을 바운드 DGV에 추가하는 방법을 알려줄 수 있습니까?

또한 여기에서 im은 열의 맨 위를 클릭하여 바인딩 된 DGV에서 기본 데이터 세트를 다시 정렬하므로 사물을 여전히 동기화 상태로 유지합니까? 사전에 어떤 도움

감사

답변

1

.

어댑터는 구조를 신경 쓰지 않습니다. 선택/삽입/업데이트/삭제 명령에 사용 된 열 이름에만 관심이 있습니다. 사용자 정의 열, 표현식 열, 부분합 열, 합계 열 또는 필요한 것을 추가 할 수 있습니다. 기둥 순서를 변경하십시오. 정렬 열을 추가하는 것이 좋습니다. 따라서 사용자 또는 사용자가 정렬 할 때 적절한 위치에 사용자 정의 행을 유지할 수 있습니다.

사용자 정의 행에 대해 동일한 작업을 수행 할 수 있습니다. 어댑터를 통해 업데이트 할 때 RowUpdating 이벤트를 처리하고 이러한 사용자 지정 행에 대해 SqlRowUpdatingEventArgs.StatusSkipCurrentRow으로 설정합니다. 행 유형 열을 작성하여 업데이트 할 때 어떤 행을 건너 뛸 지 알 수 있도록하는 것이 좋습니다. 행을 건너 뛰는 키로 정렬 열 값을 사용할 수도 있습니다.

총 행을 추가하는 방법을 보여주는 MSDN 또는 KB에 대한 몇 가지 기사가 있습니다.

  • "윈도우의 필드를 합산하는 방법 은 DataGrid 컨트롤을 양식 다음 Visual Basic .NET를 사용하여 바닥 글에 계산 된 합계를 표시"http://support.microsoft.com/kb/836672에서. 내 경험에

는, 바인딩하기 전에 먼저 데이터 테이블을 조작 할 수 있습니다. 그리드와 그리드의 인터페이스를 지원하기 위해해야 ​​할 일을하십시오. 데이터를 조작하고 열과 행을 추가/변경/제거한 다음 필요한 경우 다시 바인딩하는 것이 좋습니다.

0

는 다음과 같은 방법으로 사용자 정의 열을 falseDataGridView 당신이 할 수도 설정의 AutoGenerateColumns 속성에 추가 언 바운드 열을 추가하고 추가 할 수 있도록 :

dataGridView->Columns->Add(...) 

언 바운드 열의 내용을 계산하려면 CellValueNeededCellValuePushed 이벤트를 처리 할 수 ​​있지만 에 VirtualMode 속성을 설정하여 DataGridView를 '가상 모드'로 설정해야합니다 이벤트 핸들러를 호출 할 수 있습니다. 이 약간의 도움이

희망 .... 예, 당신이 할 수있는