首先拖一个checkbox控件。为了保持风格一致,当然是拖devexpress中的checkbox到gridview的复选框列的标头,把它当做全选框,然后把gridview的复选框列的最大宽度和最小宽度设置为20。这样就免去了绘制全选框的步骤,最后提醒一下,无需对复选框列做任何设置。以下代码就是添加复选框全选功能并取值的步骤。
第一步简单但也最重要就是给绑定到gridview的数据源加上自定义的一列,这是你会发现gridview的复选框列自动变成了复选框
第二步,checkbox控件的事件中为gridview的复选框列循环赋值。这样实现了全选或者全不选的功能
第三步,取复选框被选中的行的值
1.在想gridview绑定的数据源中加入一行数据
DataTable dt = GetDataSource();
dt.Columns.Add("check", System.Type.GetType("System.Boolean"));
gridControl1.DataSource = dt;
2.在gridview的全选框的CheckedChanged的事件中添加以下代码用于实现全选的效果:
private void checkEdit1_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < gridView1.RowCount; i++) //循环gridView1的行
{
gridView1.GetDataRow(i)["check"] = (Boolean)checkEdit1.EditValue; //将选复选框列的值和全选框的值统一
}
}
3.获取被选中的行的数据结果
private void GetCheck()
{
string value = ""; //变量,存储行的选中值
string strSelected = ""; //想要的结果。可以为任意的类型
for (int i = 0; i < gridView1.RowCount; i++) //循环gridView1值
{
value = gridView1.GetDataRow(i)["check"].ToString(); //将行的结果复制给变量
if (value == "True") //判断,如果行为
{
strSelected += gridView1.GetRowCellValue(i, "week");
}
}
MessageBox.Show(strSelected);
}