0

是否可以从具有 DataRowState.Deleted 的 DataTable 中显示 DataRow?

场景:用户可以编辑在网格中呈现的某种查找信息。现在他/她可以删除、修改或插入多个条目,最后一键将他/她的所有更改存储到数据库中(假设没有违反主键或其他问题)。

现在我想根据它们的编辑状态为不同的行着色,但被删除的行会立即消失。

你有什么想法或其他方法来解决这个问题吗?

4

1 回答 1

0

编辑:我意识到Grid您使用的不是DataGridView. 对于任何想要对 执行相同操作的人DataGridView,他们可以执行以下操作:

  1. 创建一个DataView

    DataView myDataView = 
          new DataView(myDataTable, 
                       String.Empty,       // add a filter if you need one
                       "SortByColumn",
                       DataViewRowState.OriginalRows | DataViewRowState.Deleted); 
    
    myDataGridView.DataSource = myDataView;
    
  2. 句柄UserAddedRowUserDeletedRow事件CellValueChanged

    private void myDataGridView_UserAddedRow
                (object sender, DataGridViewRowEventArgs e)
    {
        e.Row.DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#CCFF99");
    }
    
    private void myDataGridView_UserDeletedRow
                (object sender, DataGridViewRowEventArgs e)
    {
        e.Row.DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#FFCC99");
    }
    
    private void myDataGridView_CellValueChanged
                (object sender, DataGridViewCellEventArgs e)
    {
       myDataGridView[e.ColumnIndex, e.RowIndex].DefaultCellStyle.BackColor 
                                              = ColorTranslator.FromHtml("#FFFF99");
    }
    
于 2009-09-11T18:15:04.457 回答