Имеется:
— DataTable
dt, некоторые строки которого помечены Deleted, Added или Modified (применять AcceptChanges до определенного момента нельзя в силу внутренней структуры приложения)
— DataGrid
dg (System.Web.UI.WebControls), которому в качестве DataSource присвоен DataTable
dt. В
dg есть колонка с кнопочкой "удалить", которая имеет следующий обработчик:
void dg_DeleteItem(DataGridCommandEventArgs e)
{
if (e.Item.ItemIndex == dg.EditItemIndex)
dg.EditItemIndex = -1;
if (e.Item.ItemIndex < settingsGrid.EditItemIndex)
dg.EditItemIndex--;
dt.Rows[e.Item.DataSetIndex].Delete();
}
После удаления одного из элементов списка он исчезает со странички. При повторной попытке удалить тот же по счету элемент (это будет следующая за удаленной строка в dt) ни чего не происходит. Если попытаться удалить следующий по счету, то удаляется тот что стоит на месте первого удаленного. Т.е. в
e.Item.DataSetIndex получается на самом деле не номер в dt, а номер в dt, если к нему применить AcceptChanges.
Отсюда вопрос: могу ли я получить реальный номер соответствующего элемента?