Visualizza un DataRow cancellato in una griglia (Infragistics.Ultra-)
Domanda
è possibile visualizzare un DataRow da un DataTable che ha DataRowState.Deleted?
Scenario: L'utente può modificare alcune informazioni di ricerca che sono presentate nella griglia. Ora può cancellare, modificare o inserire più voci e infine memorizzarle tutte cambia con un clic sul database (supponendo che non vi sia violazione della chiave primaria o qualche altro problema).
Ora voglio colorare le diverse righe in base al loro stato di modifica, ma il le righe eliminate scompaiono immediatamente.
Hai qualche idea o un altro approccio per risolvere questo problema?
Soluzione
Modifica: ho capito che il Grid
che stai usando non è DataGridView
. Per chiunque voglia fare lo stesso con DataGridView
, può fare quanto segue:
-
Crea un
DataView
:DataView myDataView = new DataView(myDataTable, String.Empty, // add a filter if you need one "SortByColumn", DataViewRowState.OriginalRows | DataViewRowState.Deleted); myDataGridView.DataSource = myDataView;
-
Gestisci eventi
UserAddedRow
,UserDeletedRow
eCellValueChanged
: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"); }