Usuário com melhor resposta
Ordenar coluna alfanumérico

Pergunta
-
Boa tarde,
como posso ordenar um campo alfanumérico de um Datagridview em c#.
private void dgv_ColumnHeaderMouseClick
Atual
1.000% 2.000% 10% 100% 200% 500%
Deveria ficar 10% 100% 200% 500% 1.000% 2.000%
- Editado MDFG quinta-feira, 14 de setembro de 2017 17:37
Respostas
-
Você pode utilizar o evento SortCompare do DataGridView (https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/how-to-customize-sorting-in-the-windows-forms-datagridview-control)
private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { // Try to sort based on the cells in the current column. e.SortResult = System.String.Compare( e.CellValue1.ToString(), e.CellValue2.ToString()); // If the cells are equal, sort based on the ID column. if (e.SortResult == 0 && e.Column.Name != "ID") { e.SortResult = System.String.Compare( dataGridView1.Rows[e.RowIndex1].Cells["ID"].Value.ToString(), dataGridView1.Rows[e.RowIndex2].Cells["ID"].Value.ToString()); } e.Handled = true; }
e criar uma comparação customizada como neste exemplo: https://stackoverflow.com/questions/9988937/sort-string-numbers/9989709#9989709
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de setembro de 2017 12:41
Todas as Respostas
-
Boa tarde, MDFG. Tudo bem?
De onde você está pegando esses números?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Você pode utilizar o evento SortCompare do DataGridView (https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/how-to-customize-sorting-in-the-windows-forms-datagridview-control)
private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { // Try to sort based on the cells in the current column. e.SortResult = System.String.Compare( e.CellValue1.ToString(), e.CellValue2.ToString()); // If the cells are equal, sort based on the ID column. if (e.SortResult == 0 && e.Column.Name != "ID") { e.SortResult = System.String.Compare( dataGridView1.Rows[e.RowIndex1].Cells["ID"].Value.ToString(), dataGridView1.Rows[e.RowIndex2].Cells["ID"].Value.ToString()); } e.Handled = true; }
e criar uma comparação customizada como neste exemplo: https://stackoverflow.com/questions/9988937/sort-string-numbers/9989709#9989709
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de setembro de 2017 12:41
-
Bom dia,
Por falta de retorno essa thread está sendo encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.