Сортировать столбцы dataGridView в C #? (Форма Windows) - PullRequest
44 голосов
/ 30 апреля 2009

У меня есть представление данных, которое я связываю из таблицы sql, в этом dv у меня есть такие атрибуты: Id, Name и Price. Когда я устанавливаю SortMode для столбцов имени на Автоматический и нажимаю на заголовок этого столбца, я могу отсортировать этот DVD по первой букве имени, таким образом я могу заказать товары по первым буквам (Acumulator, Boat, CocaCola, Двигатель и т. Д.).

Есть ли способ, как это происходит, не щелкая заголовок столбца Имя. Я ищу код, который сделает эту работу, когда форма загрузится.

Ответы [ 6 ]

97 голосов
/ 30 апреля 2009

В DataGridView есть метод "Sort":

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

Это позволит программно отсортировать ваше представление данных.

13 голосов
/ 22 августа 2010
dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);
6 голосов
/ 30 апреля 2009

Вы можете контролировать данные, возвращаемые из базы данных SQL, упорядочивая возвращаемые данные:

orderby [Name]

Если вы выполняете SQL-запрос из вашего приложения, упорядочите возвращаемые данные. Например, создайте функцию, которая вызывает процедуру или выполняет SQL, и задайте ей параметр, который получает критерии orderby. Потому что, если вы заказали данные, возвращенные из базы данных, они будут занимать время, но упорядочите их, поскольку они выполняются, поскольку вы говорите, что хотите, чтобы они были упорядочены не из пользовательского интерфейса, который вы хотите упорядочить во время выполнения, поэтому упорядочивайте их при выполнении SQL запрос.

2 голосов
/ 22 мая 2015

Это проще:)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;
0 голосов
/ 25 мая 2019

Лучший способ сделать это - отсортировать список перед привязкой источника данных.

cars = cars.OrderBy(o => o.year).ThenBy(o => o.color).ToList(); adgCars.DataSource = cars;

Извините за мой плохой английский.

0 голосов
/ 30 апреля 2009

Используйте свойство Datatable.Default.Sort, а затем привяжите его к представлению данных.

...