Classificação alfa do .Net Gridview, ela precisa ser classificada numericamente

StackOverflow https://stackoverflow.com/questions/79736

  •  09-06-2019
  •  | 
  •  

Pergunta

Esta é minha primeira questão real de necessidade para qualquer um dos especialistas em Gridview no mundo .NET.

Estou criando um Gridview a partir do codebehind e estou mantendo vários dados numéricos nas colunas.Embora eu adicione a vírgula nos campos numéricos do codebehind.Quando eu o carrego no Gridview, tenho a capacidade de classificação ativada, MAS o gridview escolhe a classificação ALFA em vez de classificar numericamente porque eu adiciono essas vírgulas.

Então preciso de ajuda.Alguém disposto a dar uma chance a este?Preciso alterar algumas das minhas colunas no gridview para classificação numérica em vez da classificação alfa que está usando.

Foi útil?

Solução 4

Em vez disso, apenas recorri ao JQUERY Table Sorter.

pode ser encontrado aqui: classificador de tabelas

Outras dicas

Se você acabar implementando seu próprio comparador e classificando-os como strings, o algoritmo para tratar números 'corretamente' é chamado de Classificação Natural.Jeff escreveu uma entrada muito boa sobre isso aqui:
Classificação para humanos:Ordem de classificação natural

Você pode encontrar uma implementação muito boa em C# aqui:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

Dependendo exatamente de como você está classificando, você pode usar um dos métodos acima ou retornar ao banco de dados e fazer a classificação lá se as colunas forem realmente do tipo numérico e adicionar sua decoração a elas mais tarde.

P-Invoke é seu amigo.

[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);

Então você poderia usá-lo como seu próprio comparador.

Por exemplo (no VS2005),

Array.Sort(tringArray, delegate(string left, string right)
{
    return StrCmpLogicalW(left, right);
});

Sei que isso é muito antigo, mas você está misturando dados com apresentação;é isso que está estragando tudo.Obtenha o número do SQL sem adicionar vírgulas e adicione-os na camada de apresentação.

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