Реализация функции множественного выбора DEV Gridcontrol

Реализация функции множественного выбора DEV Gridcontrol

1. Установите столбец. Добавьте столбец, имя поля — «галочка», и установите для ColumnEdit стиль флажка. сеткавид1. для редактирования установлено значение true

2. Добавьте в источник данных столбец «Проверка».

//Добавляем столбец в таблицу 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
  ;

Имя поля должно быть привязано, а набор данных источника данных или таблица данных, связанная с помощью GridControl, должны иметь столбец el dname!В противном случае также возникнет ситуация, когда невозможно будет сделать множественный выбор.

Решение для чтения значения только после того, как флажок теряет фокус

 Private voidgridView1_CellValueChanging(отправитель объекта, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {             gridView1.SetRowCellValue(e.RowHandle, e.Column,e.Value);         }

4Выбрать все, добавить галочкуПравить


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

おすすめ

転載: blog.csdn.net/wushijun5200/article/details/129106279