Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
m9yt
18 / 2 / 1
Регистрация: 17.11.2009
Сообщений: 110
1

Сортировка DataGridView

09.07.2014, 17:28. Просмотров 2066. Ответов 1
Метки нет (Все метки)

Добрый день.
Возникли проблемы с пониманием сортировки DataGridView.
Вычитал с msdn следующие вещи:
1) Программная сортировка
"Если элемент управления DataGridView связан с внешним источником данных путем задания свойства DataSource, перегрузка метода Sort(DataGridViewColumn,ListSortDirection) не работает для несвязанных столбцов. Кроме того, если свойство VirtualMode имеет значение true, вызов этой перегрузки возможен только для связанных столбцов. Определить, является ли столбец связанным, можно исходя из значения свойства IsDataBound. Сортировка несвязанных столбцов в связанном режиме не поддерживается."

2) Пользовательская сортировка
"Перегрузка метода Sort(IComparer) работает, только если элемент управления DataGridView не связан с внешним источником данных, а свойство VirtualMode имеет значение false. Для настройки сортировки для столбцов, связанных с внешним источником данных, следует воспользоваться операциями сортировки, которые поддерживаются этим источником данных. В виртуальном режиме операции сортировки для несвязанных столбцов необходимо обеспечить самостоятельно."

Что имеется: DataGridView, для которой настроен источник данных.
Что нужно: Отсортировать один из столбцов в нужном мне порядке (в ячейках смешанный тип данных, например "строка + число").

Я так понимаю, что поставленную мною цель достичь невозможно, так как моя сортировка относится к пользовательской, но и в то же время есть связь с источником данных?
Как тогда быть?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2014, 17:28
Ответы с готовыми решениями:

DataGridView, сортировка
Помогите пжлст сделать сортировку. Таблицу сделал в SQL.

DataGridView сортировка
Скажите а как в DataGridView, указать на то что бы новые поля появлялись в...

Сортировка в DataGridView
Как отсортировать строки в DataGridView, по 3 столбцу но чтобы сортировка шла...

Сортировка в Datagridview
Прошу помощи, нужно отсортировать второй столбец, вот код и что получилось, но...

Сортировка в DataGridView
Помогите пожалуйста) При выборе пункта «Отсортировать» строки таблицы...

1
m9yt
18 / 2 / 1
Регистрация: 17.11.2009
Сообщений: 110
11.07.2014, 10:41  [ТС] 2
Лучший ответ Сообщение было отмечено m9yt как решение

Решение

Делаю так:
C#
1
2
3
4
table = table.AsEnumerable().OrderBy(x => x, _columnSorter).CopyToDataTable();
var bindingSource = new BindingSource();
bindingSource.DataSource = table;
this.dataGridView.DataSource = bindingSource;
где _columnSorter - мой класс компаратора.
Сортирует как надо, но к моему гриду прикручен комбобокс с выпадающими фильтрами.
И после сортировки вся фильтрация слетает из-за перепривязки отсортированного источника (без перепривязки не сортируется).

Можно ли как-то избежать данной перепривязки?

Добавлено через 1 час 58 минут
Решил проблему переналожением старого фильтра после перепривязки.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 10:41

Сортировка в DataGridView
Когда в DataGridView задан автоматический SortMode, то столбцы сортируются, при...

Сортировка в DataGridView
Как сделать сортировку всех строк в DGV по одной колонке, а не только одной...

Сортировка в dataGridView
Здравствуйте. Вывожу данные из файла в dataGridView. Нужно реализовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru