Pergunta

Eu tenho um datagridview que eu ligar de uma tabela sql, em que dv eu tenho esses atributos: Id, nome e preço. Quando eu definir o SortMode das Colunas nome para Automatic e eu clicar no cabeçalho desta coluna eu posso resolver isso dv com base na primeira letra do nome, desta forma eu posso encomendar produtos com base em suas primeiras letras (Acumulator, Barco, CocaCola, motor etc).

Existe uma maneira essa coisa acontecer sem clicar no cabeçalho do nome da coluna. Eu estou procurando algum código que vai fazer este trabalho quando o formulário será carregado.

Foi útil?

Solução

Há um método no DataGridView chamado de "Ordenar":

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

Esta será programaticamente classificar sua datagridview.

Outras dicas

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

Você pode controlar os dados retornados do banco de dados SQL, ordenando os dados retornados:

orderby [Name]

Se você executar a consulta SQL a partir da aplicação, ordem os dados retornados. Por exemplo, fazer uma função que chama o procedimento ou executa o SQL e dar-lhe um parâmetro que recebe os critérios orderby. Porque se você ordenou os dados retornados do banco de dados que irá consumir tempo, mas encomendá-lo, uma vez que é executado como você dizer que você quer que ele seja ordenado não a partir da interface do usuário que você quer que ele seja ordenado no tempo de execução para que encomendá-lo ao executar o SQL consulta.

Este é mais simples:)

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

propriedade Use Datatable.Default.Sort e depois vinculá-lo ao datagridview.

A melhor maneira de fazer isso é para ordenar a lista antes de ligação de origem de dados.

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

Desculpe pelo meu mau Inglês.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top