2014-04-19 161 views
0

我有DataGridView在窗體中包含13個複選框。一個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

值返回一個對象類型,並且不能與一個布爾值進行比較。你可以投的值bool

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

試試這個:

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 - 值 - 當 - checkbox.html –

相關問題