Меня смущает многое в этом вопросе. Если вы используете GridView
, а не DataGridView
, то вы используете ASP.NET, WPF или .NET 1.1. Что это?
Далее: вы создаете новый DataTable
полностью? Ну, конечно, элемент управления будет сброшен при сбросе DataSource
. Он не знает, что схема вашего нового DataTable
такая же, как и схема, которую он заменяет. Нужно пройти через колонны и восстановить привязки.
Кроме того, из курс теряет текущий ряд. Текущая строка принадлежит старому DataTable
, а не новому.
Если вы хотите, чтобы связанный элемент управления сохранял свое состояние при обновлении базового источника данных, обновите базовый источник данных, не заменяйте его новым.