Formatação em Colunas do GridView



Frequentemente quando utilizamos um controle do tipo GridView, e inserimos valores do tipo Data, Dinheiro, Inteiros ou Decimais, precisamos formatar esse valor de acordo com a finalidade desse Campo. Nesse artigo apresentarei a propriedade DataFormatString da BoundColumn de um DataGrid.

Existem dois tipos de formatação:

                 ·         Standard Formats;

                 ·         Custom Formats.


Como o objetivo do artigo é mostrar as formatações mais utilizadas em aplicativos para serem executados nos padrões brasileiros, então deixarei claro o seguinte: O padrão para valores numéricos será adotado o Stardand Format. Já a formatação para datas, será utilizado o Custom Format.

A propriedade DataFormatString fornece uma formatação customizada para o valor inserido na BoundColumn. Esta propriedade consiste em duas partes separadas por dois pontos estando dentro de um par de chaves da seguinte forma: {:}. Isso é válido apenas quando estiver inserindo na BoundColumn valores numéricos ou do tipo data.

A sintaxe é a seguinte: {0:[Formato][Qtde. Casas Decimais]}. O caracter que vem após os dois pontos, é o formato em que o valor será exibido. Você também poderá optar por definir a quantidade de casas decimais da seguinte forma: {0:C2}. A seguir uma lista com os valores possíveis:



Standard Format
Descrição
C
Exibe o valor no formato de moeda.
D
Exibe o valor em formato decimal.
E
Exibe o valor no formato cientìfico (exponencial).
F
Exibe o valor no formato fixo.
G
Exibe o valor no formato geral.
N
Exibe o valor no formato numérico.
P
Exibe o valor no formato de porcentagem.
X
Exibe o valor no formato hexadecimal.



NOTA: Os caracteres acima que especificam o formato a ser exibido não são case-sensitive, exceto para o X, pois se ele for minúsculo, os valores serão apresentados em minúsculo, do contrário, serão exibidos em maiúsculo.

Para configurar os valores no GridView, clique com o botão direito do mouse em cima do mesmo, e selecione Property Builder. Em seguida, vá até a aba Columns e ao incluir uma nova BoundColumn, a propriedade DataFormatString será habilitada para que você possa definir a formatação customizada. A imagem abaixo ilustra o processo:


A figura abaixo exibe os valores no GridView de acordo com a formatação pré-definida na propriedade DataFormatString.


 Aqui chamo a atenção para a coluna onde é exibido o valor no formato moeda e o separador de casas decimais. Como não foi definido nenhuma cultura no arquivo Web.Config, por padrão ele adota as configurações regionais definidas no servidor. Se acrescentar a cultura pt-BR nas configurações de nossa aplicação, verão que os valores passarão a serem exibidos no formato brasileiro. Abaixo a ilustrução deixará claro:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="pt-br" />

Tal alteração é realizada no arquivo web.config. A figura abaixo mostra como ficou após a alteração.


 Além das configurações para valores numéricos, ainda podemos utilizar a propriedade DataFormatString para formatarmos datas que são inseridas no DataGrid. Abaixo uma tabela as as possibilidades de formatação para datas:


Custom Format
Descrição
MM/dd/yyyy
Formato Mês/Dia/Ano
dd/MM/yyyy
Formato Dia/Mês/Ano
hh:mm
Formato Hora:Minuto
hh:mm:ss
Formato Hora:Minuto:Segundo
dd/MM/yyyy hh:mm:ss
Formato Dia/Mês/Ano Hora:Minuto:Segundo



NOTA: Devemos nos atentarmos para o MM e para o mm, pois maiúsculo significa Mês, já o minúsculo significa Minutos.

Como dito anteriormente, a configuração da formatação para data, funciona da mesma forma que a formatação para valores numéricos, ou seja, você define na propriedade DataFormatString da BoundColumn do GridView, como por exemplo: {0:dd/MM/yyyy hh:mm:ss}.

NOTA: Você poderia também ao invés de barras "/" utilizar o hífen "-" como separador para as Datas, ficando a String de formatação da seguinte forma: {0:dd-MM-yyyy hh:mm:ss}.

Poderá também fazer a formatação diretamente no HTML, utilizando a propriedade DataItem em conjunto com a método Format. Exemplo:

<asp:TemplateColumn>

<%# String.Format("{0:c}", Convert.ToInt32(Container.DataItem("NomeDaColuna"))) %>

</asp:TemplateColumn>

Comentários

Postagens mais visitadas deste blog

O QUE É BROADCASTING?

Códigos Prontos em Pascal

Desativar tecla F5 e CRTL+R utilizando JavaScript