Как снять флажок в datagridview, используя Entity Framework

winforms datagridview

78 просмотра

2 ответа

У меня есть датагридвью на winform. Это связано с приведенным ниже кодом:

PoolEntities db = new PoolEntities();

var Result = db.General_Pool_Detail.Where(g => g.Pool_Name == cbxGLType.SelectedValue && g.Mapped_Date == dt).Select(s=>                  
new { Selected = true, s.Gen_Pool_ID, s.GSL_Code, s.Amount }).ToList();

dgvGeneralPoolData.DataSource = Result;

Код работает отлично. Но когда я снимаю флажок на datagridview, он не работает.

В событии datagirdview я написал следующий код:

private void dgvGeneralPoolData_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Selected)
        {
Boolean IsChecked = (Boolean) dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Value;

            if (IsChecked)
            {
              dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Value = false;
            }
        }
    }

Также я хочу сохранить изменения, внесенные в datagridview, в базу данных. Пожалуйста помоги.

Автор: Syed Imran Shah Источник Размещён: 08.11.2019 11:00

Ответы (2)


0 плюса

Свойство EditMode

  1. проверьте свойство editmode вашего datagridview.
Автор: DBB Размещён: 20.08.2016 08:55

0 плюса

Это даже поразило ваше событие щелчка? Где именно он ломается при отладке? Попробуйте отладить и предоставьте больше информации, если можете.

1) Отладка и убедитесь, что обработчик событий работает. Иногда, когда вы копируете и вставляете код, обработчик событий не регистрируется разработчиком, поэтому попробуйте удалить CellClick и снова введите код в сетке, добавив знак =, это даст вам возможность создать метод ClickCell. для тебя. Это должно быть что-то вроде этого внутри вашего события клика.

if (e.RowIndex != -1)
{
    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dgvGeneralPoolData.CurrentRow.Cells["ColumnNumberHere"];
    if (chk.Value == null || chk.Value = false)
    { 
        chk.Value = true;
    }
    else
    {
        chk.Value = false
    }
}

2) Убедитесь, что это в вашем InitializeComponent ()

this.dgvGeneralPoolData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvGeneralPoolData_CellContentClick);
Автор: Stelios Размещён: 20.08.2016 09:47
Вопросы из категории :
32x32