private void dataGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
int columnIndex;
SortOrder sortOrder;
columnIndex = e.ColumnIndex;
if (columnIndex > 1) return;
sortOrder = dataGridView.Columns[columnIndex].HeaderCell.SortGlyphDirection;
if (sortOrder == SortOrder.Descending || sortOrder == SortOrder.None)
{
dataGridView.Columns[columnIndex].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
}
else
{
dataGridView.Columns[columnIndex].HeaderCell.SortGlyphDirection = SortOrder.Descending;
}
}
Programmatic сортировка поля
Вопрос лишь в следующем:
означает ли это что я должен сделать следующее:
1) Переопределить SelectionString с ORDER BY у DataAdapter'а
2) Очистить таблицу
3) Заполнить ее заново
И как при этом будут работать автоматические сортировки на других полях..
Как работает прорисовка SortGlyphDirection у колонок?
При щелчке на очередном поле надо ставить в None все остальные SortGlyphDirection?
Пока делаю следующее:
Код:
Остальные поля переместяться в зависимости от сортировки. Сортировка применяется только к одному столбцу, остальные элементы строк исходя из этого и будут размещаться. А SortGlyphDirection работает с помощью метода ToString значения поля, а уже получившиеся строки сортируются по убыванию или возрастанию.
Цитата: 3A3-968M
Остальные поля переместяться в зависимости от сортировки. Сортировка применяется только к одному столбцу, остальные элементы строк исходя из этого и будут размещаться. А SortGlyphDirection работает с помощью метода ToString значения поля, а уже получившиеся строки сортируются по убыванию или возрастанию.
Спасибо, я знаю, что такое сортировка:)
Просто из-за вот этой строчки:
Код:
if (columnIndex > 1) return;
у меня неправильно прорисовывались SortGlyphDirection
Я не знал, что если уж чо-то сортируешь программно, то сортировать программно необходимо все поля.. а "я" какие-то сортировал автоматически, а какие-то нет!!