Вопрос

У меня есть datagridview, который я привязываю из таблицы sql, в этом dv у меня есть эти атрибуты:Идентификационный номер, Название и Цена.Когда я устанавливаю режим сортировки столбцов названия на Автоматический и нажимаю на заголовок этого столбца, я могу отсортировать этот dv на основе первой буквы названия, таким образом, я могу заказывать продукты на основе их первых букв (Аккумулятор, Лодка, Кокосовая кола, Двигатель и т.д.).

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

Это было полезно?

Решение

В DataGridView есть метод, который называется "Сортировать".:

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

Это позволит программно отсортировать ваш datagridview.

Другие советы

dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);

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

orderby [Name]

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

Этот вариант проще :)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top