Mostrar una DataRow eliminada en una cuadrícula (Infragistics.Ultra-)
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?
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:
-
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;
-
Manejar
UserAddedRow
,UserDeletedRow
yCellValueChanged
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"); }