Ответ 1
В DataGridView есть метод, называемый "Сортировка":
this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);
Это будет программно сортировать ваше datagridview.
У меня есть datagridview, который я связываю из таблицы sql, в этом dv у меня есть эти атрибуты: Id, Name и Price. Когда я устанавливаю SortMode столбцов имен в автоматический и я нажимаю на заголовок этого столбца, я могу сортировать этот dv на основе первой буквы имени, таким образом я могу заказать продукты на основе их первых букв (Acumulator, Boat, CocaCola, Двигатель и т.д.).
Можно ли это сделать, не нажимая заголовок столбца Name. Я ищу код, который будет выполнять эту работу при загрузке формы.
В DataGridView есть метод, называемый "Сортировка":
this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);
Это будет программно сортировать ваше datagridview.
dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);
Вы можете управлять данными, возвращаемыми из базы данных SQL, путем заказа возвращаемых данных:
orderby [Name]
Если вы выполняете SQL-запрос из своего приложения, закажите возвращенные данные. Например, создайте функцию, которая вызывает процедуру или выполняет SQL и дает ей параметр, который получает критерии порядка. Поскольку, если вы заказывали данные, возвращенные из базы данных, они будут потреблять время, но заказывать его с момента его выполнения, поскольку вы говорите, что хотите, чтобы его заказывали не из пользовательского интерфейса, который вы хотите, чтобы его заказывали в течение времени выполнения, поэтому закажите его при выполнении 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;
Извините за мой плохой английский.