2014-04-19 5 views
0

나는 1335 개의 체크 박스가 포함 된 windows 형식의 DataGridView입니다. 하나의 checbox i-e (첫 번째 것)는 기본적으로 몇 달 동안 다른 모든 체크 박스를 검사하는 것입니다. 그래서 지금 나는 첫 번째 체크 박스를 체크 할 때 다른 체크 박스를 모두 체크해야하고 첫번째 체크 박스를 체크 해제 할 때 모든 체크 박스는 체크하지 말아야한다. 첫 번째 확인란을 선택하면 코드가 올바르게 작동하지만 첫 번째 확인란의 선택을 취소해도 모든 확인란이 선택됩니다. 그러나 나는 그 사람들이 확인되지 않기를 바란다. 나는 CellContentClick 이벤트를 사용했다.
여기 내 코드입니다.DataGridview의 체크 박스가 선택되어 있는지 확인하고 있습니까?

if (e.ColumnIndex == 1) 
{ 
    for (int k = 2; k <= 13; k++) 
    { 
     DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[k]; 
     DataGridViewCheckBoxCell checkCell = cell as DataGridViewCheckBoxCell; 
     checkCell.Value = true; 
    } 
} 

답변

0

값은 객체 유형을 반환하며 부울 값과 비교 될 수 없습니다.

foreach (GridViewRow gvrow in gvDetails.Rows) 
     { 
      CheckBox chk = (CheckBox)gvrow.FindControl("chkSelect"); 
      if (chk != null & chk.Checked) 
      { 
       str += gvDetails.DataKeys[gvrow.RowIndex].Value.ToString() + ','; 
       strname += gvrow.Cells[2].Text + ','; 
      } 
     } 
+0

그것을 NullReferenceException이 – Loyal

+0

확인이 http://www.aspdotnet-suresh.com/2013/03/get-gridview-row을 제공합니다 : 당신은

if ((bool)row.Cells[1].Value == true) { // what I want to do } 

이 시도 bool로하는 값을 캐스팅 할 수 있습니다 -values-when-checkbox.html –

관련 문제