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";
}
}
}
}
}
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";
}
}
}
}
}
this.DataGrid1.Items[行号].Cells[列号].Controls中,所以楼主你要foreach遍历DataGrid1中的每一个Items中的每一个Cells中的控件,判定其是否为CheckBox。
foreach(object obj in Form1.Controls)
{
if(obj is DataGrid)
{
foreach(object nobj_item in this.DataGrid1.Items)
{
foreach(object nobj_cell in nobj_item.Cells)
{
foreach(object nobj_control in nobj_cell.Controls)
{ if(nobj_control is CheckBox)
{
CheckBox cb = (CheckBox)nobj_control;
if(cb.Checked == true)
{
role += "1";
}
else
{
role += "0";
}
}
}
}
}
}
}
那不就是一个格吗?
那不就是一个格吗?
--------------------------------------------------
是一个格里放了多个CheckBox,该如何遍历呢?
有没有在解决方案中添加“Microsoft.Web.UI.WebControls”引用?
你可以忽略它继续执行试下
string role = null;
foreach(object obj in Form1.Controls)
{
if(obj is DataGrid)
{
foreach(System.Web.UI.WebControls.DataGridItem nobj_item in DataGrid1.Items)
{
foreach(System.Web.UI.WebControls.TableCell nobj_cell in nobj_item.Cells)
{
foreach(System.Web.UI.Control nobj_control in nobj_cell.Controls)
{
if(nobj_control is CheckBox)
{
CheckBox cb = (CheckBox)nobj_control;
if(cb.Checked == true)
{
role += "1";
}
else
{
role += "0";
}
}
}
}
}
}
}
2,为DataGrid添加ItemCommand响应事件:DataGrid属性-》事件
(这样,当用户点击DataGrid中的某个选择按钮时就会触发)
3,在事件的处理方法中写以下代码:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Select")//判断用户点击的是不是选择按钮
{
foreach(System.Web.UI.Control nobj_control in e.Item.Cells["你的CheckBox所在列号,从0开始"])
{
if(nobj_control is CheckBox)
{
CheckBox cb = (CheckBox)nobj_control;
if(cb.Checked == true)
{
role += "1";
}
else
{
role += "0";
}
}
}
}
}
│第一列 │ 放入了很多CheckBox的列 │ 操作按妞 │
├──────────────────────────────┤
│abc │ checkbox1 checkbox2 checkbox3 │ 按妞 │
├──────────────────────────────┤
│def │ checkbox1 checkbox2 checkbox3 │ 按妞 │
├──────────────────────────────┤
│fdf │ checkbox1 checkbox2 checkbox3 │ 按妞 │
└──────────────────────────────┘
也许是我没表达清楚,以上就是一个DataGrid表格,当我点击某一行的按妞的时候,在ItemCommand事件中把这一行的第二列中所有的checkbox遍历出来,该如何写呢?恳请大家多多指教