更改CellValueChanged事件的值

时间:2018-08-20 09:10:00

标签: c# winforms datagrid devexpress

如果要编辑其他任何单元格,我试图更改单元格的值,因为我想在数据库和网格中有一个EditedAt单元格。我在此事件中进行了尝试,但它仅保存值而未更改日期:

private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e)
    {
        ColumnView tmpView = gridControl1.FocusedView as ColumnView;

        if (!tmpCellValueChanged && tmpView.UpdateCurrentRow())
        {
            tmpCellValueChanged = true;
            gridView1.SetRowCellValue(gridView1.FocusedRowHandle, "Model_EditedAt", DateTime.Now);
            tbModellTableAdapter1.Update(fahrzeugverwaltung_ColinDataSet1);
            tmpCellValueChanged = false;
        }
    }

预先感谢您的帮助

2 个答案:

答案 0 :(得分:0)

应调用GridView.UpdateCurrentRow方法,将重点突出的修改行发回到基础数据源。我建议阅读Post Data to an Underlying Data Source帮助文章,其中描述了如何处理数据库更新。

答案 1 :(得分:0)

选中this post

在CellValueChanging事件上,调用表视图的CommitEditing方法。因此,更改将被接受而不会更改焦点,并且将触发CellValueChaned事件。

    private void TableView_CellValueChanging(object sender, CellValueChangedEventArgs e) 
    {    
         ((TableView)sender).CommitEditing();
    }