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>
Nenhum comentário:
Postar um comentário