У меня есть приложение, которое отображает список документов.Когда вы нажимаете на запись списка, у вас появляется содержимое выбранного документа в правой части приложения (согласно приложенному экрану печати).Список может быть легко отфильтрован по дате.Все работает нормально.
Но ПЕРВАЯ проблема возникает, когда пользователи пытаются выбрать строку после сортировки данных.Gridview выбирает строку, которая была по индексу, по которому щелкнули, до того, как он был отсортирован.
Эта проблема решена с помощью следующего кода:
this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);
Сортировка работает сейчас, НО тогда фильтр не работает после сортировки (список остается без изменений).
Полный исходный код:
private void c1TrueDBGridHead_AfterSort(object sender, C1.Win.C1TrueDBGrid.FilterEventArgs e)
{
this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);
this.c1TrueDBGridHead.SelectedRows.Clear();
if (this.c1TrueDBGridHead.RowCount > 0)
{
this.c1TrueDBGridHead.SelectedRows.Add(0);
this.c1TrueDBGridHead.Row = 0;
}
this.c1TrueDBGridHead.Refresh();
}
Для меня это забавно (и расстраивает), потому что, когда я деактивирую следующую часть кода:
this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);
фильтр не работает.
С другой стороны, когда я деактивирую:
this.c1TrueDBGridHead.SelectedRows.Clear();
if (this.c1TrueDBGridHead.RowCount > 0)
{
this.c1TrueDBGridHead.SelectedRows.Add(0);
this.c1TrueDBGridHead.Row = 0;
}
this.c1TrueDBGridHead.Refresh();
Фильтр работает нормально, но отображение выбранного документа после сортировки не работает ...
Не знаюКак это исправить ...
введите описание изображения здесь