2011-11-03 51 views
2

在我的網格中,我有複選框,並在網格中有一個按鈕。當我點擊按鈕時,我想要使用網格中的複選框來計算所選行的數量。我們怎麼做到這一點?如何計算從gridview中選擇的複選框

在我的網格視圖中動態創建複選框和另一列,我有站點id列,我需要獲取站點ID什麼是複選框選中。

我用這個編碼

int count = dataGridView1.Rows.Count; 
for (int i = 0; i < count; i++) 
{ 
    int j = dataGridView1.SelectedCells[i].RowIndex; 
    clsSaveStatic.SiteID = int.Parse(dataGridView1.Rows[j].Cells[1].Value.ToString(); 
} 

它返回最後哪個複選框被選中。 但我的要求是我所需要的一切檢查值。

+0

不知道你想要什麼值,所有選中的值都是「真」嗎? – V4Vendetta

+0

我需要所有檢查的行值 – user990947

回答

1

確定現在我把一些代碼示例我之前的「VE用來做我的代碼相同的工作的一部分可能對您有用

private List<int>() GetSiteId() 
{ 
    var listIds=new List<int>(); 

    for (int i = 0; i < grid1.RowCount - 1; i++) 
    { 
     if (grid1.Rows[i].Cells["SelectCol"].Value != null) 
     { 
      bool value = Convert.ToBoolean(grid1.Rows[i].Cells["SelectCol"].Value); 
      if (value) 
      { 
       listId.Add(Convert.ToInt32(grid1.Rows[i].Cells["SiteID"].Value)); 
      } 
     } 
    } 
    return listId; 
} 

因此,如果值=真正的檢查

+0

本示例不適用於我的要求。所以請再舉一個例子。 – user990947

+0

它遍歷行並獲取檢查值,你真的想要什麼?你一個一個是什麼意思? – DeveloperX

+0

在我的網格視圖動態綁定的價值觀我有站點ID列我檢查的複選框選擇了什麼,所有的SITEID值,我需要 – user990947

0

您將通過在DataGridView的行具有循環和檢查複選框電池現在

foreach (DataGridViewRow item in dataGridView1.Rows) 
{ 
     //if checkbox is checked 
     if(Convert.ToBoolean((item.Cells["Chkboxcolname"] as DataGridViewCheckBoxCell).FormattedValue)) 
       // here you can access values based on column names 
       //item.Cells["Idcolumn"].FormattedValue 
} 

如果電池被選中,那麼電池的時候爲布爾評估值將是true

1

多德。

繼承人是我做的:

從電網將CellValueChanged事件來檢查「真/假」值。

  if (DataGridView.Rows.Count > 0) 
      { 
       if ((bool)DataGridView.Rows[e.RowIndex].Cells[0].Value) 
       { VarToControlCount++; } 
       else if ((bool)DataGridView.Rows[e.RowIndex].Cells[0].Value == false) 
       { VarToControlCount--; } 

       Label.Text = "Selecionados: " + VarToControlCount.ToString("00"); 

如果每次更改複選框的值都爲true,則會標識該值。

THEN ...

「刷新」 伯爵,只需將重點放在另一個小區。那麼,我想到的唯一方法就是在用戶檢查DGV中的某些內容時發送一個「TAB」。

從DGV的 「CellClick」 事件你會做這樣的:

SendKeys.Send("{TAB}"); 

DONE。這是我強制刷新的唯一方法。簡單而乾淨,雖然工作很好。

看看它是怎麼樣的: