2011-11-03 66 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。这是我强制刷新的唯一方法。简单而干净,虽然工作很好。

看看它是怎么样的: