日期:2014-05-19  浏览次数:20737 次

DataGrid中遍历CheckBox
DataGrid的一个列中包含了很多的CheckBox,我需要遍历出某一行中此列中的所有CheckBox,该如何遍历出呢?下面是我的代码,没有遍历出CheckBox,请各位指教
string   role   =   null;
foreach(object   obj   in   Form1.Controls)
{
if(obj   is   DataGrid)
{
foreach(object   nobj   in   this.DataGrid1.Controls)
{
if(nobj   is   CheckBox)
{
CheckBox   cb   =   (CheckBox)nobj;
if(cb.Checked   ==   true)
{
role   +=   "1 ";
}
else
{
role   +=   "0 ";
}
}
}
}
}

------解决方案--------------------
DataGrid中的CheckBox并不是在this.DataGrid1.Controls中,而是在
this.DataGrid1.Items[行号].Cells[列号].Controls中,所以楼主你要foreach遍历DataGrid1中的每一个Items中的每一个Cells中的控件,判定其是否为CheckBox。
------解决方案--------------------
我需要遍历出某一行中此列中的所有CheckBox???
那不就是一个格吗?
------解决方案--------------------
这个肯定是winform了..所以偶没有参与
------解决方案--------------------
用findcontrol或反射试试
------解决方案--------------------
在模板中设置好每个CheckBox的ID,然后通过一个循环用Cell[i].FindControl[ "ID "]去找,肯定能找到所有的CheckBox