Question

is it possible to display a DataRow from a DataTable which has the DataRowState.Deleted?

Scenario: The user can edit some kind of lookup-informations which are presented in the grid. Now he/she can delete, modify or insert multiple entries and finally store all his/her changes with one click to the database (assuming there is no primary-key-violation or some other problem).

Now i want to colorize the different rows according to their edit-status, but the deleted rows disappear immediatly.

Do you have any idea or another approach to solve this problem?

Was it helpful?

Solution

Edit: I realized that the Grid you are using is not DataGridView. For anyone who wants to do the same with DataGridView, they can do the following:

  1. Create a DataView:

    DataView myDataView = 
          new DataView(myDataTable, 
                       String.Empty,       // add a filter if you need one
                       "SortByColumn",
                       DataViewRowState.OriginalRows | DataViewRowState.Deleted); 
    
    myDataGridView.DataSource = myDataView;
    
  2. Handle UserAddedRow, UserDeletedRow and CellValueChanged Events:

    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");
    }
    
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top