DEV Gridcontrol 多选功能实现

文章介绍了如何在DEVGridcontrol中实现多选功能,包括设置复选框列,修改数据源,设置多选属性,以及处理失去焦点后的读值问题。同时,提供了全选功能的代码实现,当全选复选框被勾选时,会将所有行的check列设为true,并更新显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DEV Gridcontrol 多选功能实现

1.设置一列 添加一列,FieldName为 "check",将ColumnEdit 设置为 复选框 样式。gridview1。editable设置为true

2.在数据源中加一列"check",

//在表中增加一个列 add(列名,列类型)
db.Columns.Add("check", typeof(bool));
//给每一行的该列赋值
for (int i = 0; i < db.Rows.Count; i++)
{
db.Rows[i]["check"] = "false";
}
注意:新增列的类型为bool类型

3.设置一下两个属性(第二个貌似不设置也可以):
  gridView1 .OptionsSelection.MultiSelect = true;
  gridView1 .OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;

fieldname需要绑定,同时gridcontrol绑定的数据源dataset或者datatable中要有el dname这一列!!否则,也会出现,无法多选的现象

只有在复选框失去焦点后才可以读值的解决方案

 private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            gridView1.SetRowCellValue(e.RowHandle, e.Column,e.Value);
        }

4全选,加一个checkEdit


        private void checkEdit1_CheckedChanged(object sender, EventArgs e)
        {
            string m_className;

            if ((bool)checkEditAll.EditValue == true)
            {
                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    gridView1.SetRowCellValue(i, gridView1.Columns["check"], true);
                }
                m_className = "";
                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    string name = gridView1.GetDataRow(i)["tooltpid"].ToString();
                   // string name = gridView1.GetRowCellValue(i, gridView1.Columns["tooltpid"]);//       value = gridView1.GetDataRow(i)["check"].ToString();  gridView1.GetRowCellValue(i, gridView1.Columns["tooltpid"]);//
                    if (m_className == "")
                    {
                        m_className += name;
                    }
                    else
                    {
                        m_className += ",";
                        m_className += name;
                    }
                }
                labelControl1.Text = m_className;
            }
            else if ((bool)checkEditAll.EditValue == false)
            {
                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    gridView1.SetRowCellValue(i, gridView1.Columns["check"], false);
                }
                m_className = "";
                labelControl1.Text = m_className;
            }
            gridControl1.RefreshDataSource();
 
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值