DEV Gridcontrol 多选功能实现

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();
 
        }

你可能感兴趣的:(DEV,html,java,javascript)