循环 datagridview 取 checkbox的值的问题

lifeixie 2011-03-07 05:02:02
datagridview 是我的 第一列,是checkbox

我循环 取所有行的第一列值,判断是否被选中(bool值日)。

可是 每次 最后一个选中项的值取出来总是 false(比如 我选中 1 2 3行,第3行选中了,但取出来确实false即 没选中)。后来发现光标停在哪一行的单元格,哪一行的单元格即便选中了,但也取到的是flase。请问这是怎么回事!谁遇到过类似的问题?按道理来说肯定没有问题的。
代码如下,很简单,没什么特别的,其他列的值取出来没什么问题

foreach (DataGridViewRow row in datagridview1.Rows)
{
bool check = Convert.ToBoolean(row.Cells[0].FormattedValue);


//bool op = (bool)row.Cells[0].Value;
if (check == false)
continue;
else
this.Text = "aaaa";
...全文
413 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
caterpillar12345 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lifeixie 的回复:]
dataGridView1.CurrentCell = null;

循环之前 加个这个就好了,但新复制到令一个 项目里没事。不知道怎么回事。反正解决了,谢谢各位了
[/Quote]

顶一下,下午也出现这个问题了,不知道是为什么,按照lz的方法就没事儿了
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
dataGridView1.CurrentCell = null;

循环之前 加个这个就好了,但新复制到令一个 项目里没事。不知道怎么回事。反正解决了,谢谢各位了
xutaoli123 2011-03-07
  • 打赏
  • 举报
回复
foreach (DataGridViewRow row in datagridview1.Rows)
{
bool check = Convert.ToBoolean(row.Cells[0].FormattedValue);

}
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
批量 修改数据,选择的就修改(全部手动操作,不利用数据库绑定那些)。

问题不出在 取值方面,可能处在 界面其他控件什么的方面。谁有这方面经验!
lyou250 2011-03-07
  • 打赏
  • 举报
回复
要实现什么功能
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lyou250 的回复:]
bool check = Convert.ToBoolean(row.Cells[0].FormattedValue);

改为

bool check = Convert.ToBoolean(row.Cells[0].Value);
[/Quote]
没用。其中一个 值明明选中了,死活取出的就是false.
lyou250 2011-03-07
  • 打赏
  • 举报
回复
bool check = Convert.ToBoolean(row.Cells[0].FormattedValue);

改为

bool check = Convert.ToBoolean(row.Cells[0].Value);

lifeixie 2011-03-07
  • 打赏
  • 举报
回复
foreach (DataGridViewRow row in datagridview1.Rows)
{
bool check = Convert.ToBoolean(row.Cells[0].FormattedValue);

}
这个是正确的,只不过,手动选择的时候(自动全选就没事,自动选择没光标),光标所在那一行中值是 false。

主要是这个怎么解决呢
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
GridView1.Rows[i].FindControl
没有 FindControl属性。我是win的,你提供的不是WEB的把?
alan_219_2008 2011-03-07
  • 打赏
  • 举报
回复

for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked == true)
{
//do something
}
else
{
//do something
}
}


这样试试
我这边可以的
huwaihutu 2011-03-07
  • 打赏
  • 举报
回复
(RadioButtonList)GridView1.Rows[indexInt].Cells[1].FindControl("Label4")).SelectedValue
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
这个选中值是手动自己改变的。
改变后,再循环。如果选中了,就 做相应的操作
huwaihutu 2011-03-07
  • 打赏
  • 举报
回复
datagridview 中的checkbox是这样去的么?
lifeixie 2011-03-07
  • 打赏
  • 举报
回复
不是,和数据库没关系!!!!!只是单纯的 datagirdview 操作。
bdmh 2011-03-07
  • 打赏
  • 举报
回复
是不是你最后一个值没有提交到数据库

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧