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

方案: 用户可以编辑在网格中呈现的某种查找信息。 现在他/她可以删除,修改或插入多个条目,最后存储他/她 只需单击一次即可更改数据库(假设没有主键违规 或其他一些问题)。

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

您有任何想法或其他方法来解决这个问题吗?

有帮助吗?

解决方案

编辑:我意识到您使用的 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. 处理 UserAddedRow UserDeletedRow 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");
    }
    
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top