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:
<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.
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>