2011-01-17 3 views
0

현재 XML 파일에서 읽은 DataSet에 바인딩 된 DataGridView가 있습니다.XML DataGridView DirtyCell

DataGridView를 올바르게 채우십시오. 마지막 열은 사용자가 클릭하여 변경 내용을 커밋하도록하려는 버튼입니다.

더러운 행을 쉽게 찾을 수 있지만, 더티 행 내에서 셀이 더러운 것을 찾는 데 문제가 있습니다.

더티 행 내에서 각 셀을 반복했지만 더러워 보이지 않습니다.

의견을 보내 주시면 감사하겠습니다.

if (this.inventoryGridView.Columns[e.ColumnIndex].Name == "itemCheckedIn") 
     { 
      // Give the user a visual indicator the cells are "locked"/readonly by changing the background color 
      this.inventoryGridView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightGray; 

      // Check if any changes have been made to the row that was checked in 
      if (this.inventoryGridView.IsCurrentRowDirty) 
      { 
       foreach (DataGridViewCell dirtyBoy in this.inventoryGridView.CurrentRow.Cells) 
       { 
        // Is he dirty? 
       } 
      } 

      // No changes were made to the row that was check in; let's log the check in 
      else 
      { 
       // Log the check in time 
      } 

답변

0

이 작업을 시도 할 수 있습니다 :

  1. 변화에 자바 스크립트 함수
  2. 에, 행의 셀에 임의의 값의 변화에 ​​GRIDVIEW
  3. 에 바인드 숨겨진 열을 추가 숨겨진 열에 쉼표로 구분 된 값으로 셀 번호를 쓰십시오. 예를 들면 다음과 같습니다. 1, 3, 5 셀 번호가 변경됨
  4. 그런 다음 숨겨진 열 값을 사용하여 배열을 작성하고 정확히 알 수 있습니다 어떤 세포가 연속적으로 변했다.
+0

그러나 내 마지막 수단이 될 수있는 감사합니다 Divi, 그러나 먼저 확인하고 더러운 셀을 가져 오는 올바른 방법이 있는지 확인하고 싶었습니다. 로터리는 항상 내게 냉기를줍니다. < – Jimmerz28

+0

나는 이것을하는 다른 방법을 생각할 수 없었다. 나는 그것의 해킹을 안다. 그러나 ..... 만일 당신이 당신의 에 "더러운"클래스를 추가 할 수 있었고 그것이 도움이되는지 알 수 없다. – Divi