Pregunta

¿es posible mostrar un DataRow desde un DataTable que tiene el DataRowState.Deleted?

Escenario: El usuario puede editar algún tipo de información de búsqueda que se presenta en la cuadrícula. Ahora él / ella puede eliminar, modificar o insertar múltiples entradas y finalmente almacenar todas sus cambia con un clic en la base de datos (asumiendo que no hay una violación de clave primaria o algún otro problema).

Ahora quiero colorear las diferentes filas de acuerdo con su estado de edición, pero la Las filas eliminadas desaparecen inmediatamente.

¿Tiene alguna idea u otro enfoque para resolver este problema?

¿Fue útil?

Solución

Editar: Me di cuenta de que el Grid que está utilizando no es DataGridView . Para cualquier persona que quiera hacer lo mismo con DataGridView , pueden hacer lo siguiente:

  1. Cree un DataView :

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

    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");
    }
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top