Como mostrar el la fecha corta en un gridView
El control de tipo GridView tiene una propiedad DataFormatString que teoricamente sirve para controlar el formato de los campos estableciendo esa propiedad a "{0:d}" siendo d el tag para "short date o fecha corta.
El problema es que al menos en la versión 2.0 esto no funciona correctamente.
¿Como podemos solucionarlo? aplicando el formato en el ASPX y no desde modo diseño
Es facil, en modo diseño seleccionamos la columna de tipo fecha y decimos "convertir esta columna en una platilla" (template) después guardamos los cambios, entramos en modo codigo en el fichero .aspx y veremos algo como esto:
< asp:TemplateField HeaderText="fecha" SortExpression="Campofecha"><asp:Label ID="Label2" runat="server" Text='<%# Bind("Campofecha") %>'></asp:Label> </ItemTemplate></asp:TemplateField>
|
Pues lo sustituimos por algo como esto:
<asp:TemplateField HeaderText="fecha" SortExpression="fecha"><ItemTemplate><asp:Label ID="Label2" runat="server" Text='<%# Bind("fecha", "{0:d}") %>'></asp:Label> </ItemTemplate></asp:TemplateField> |
Es decir establecemos lo mismo que tendríamos que haber puesto en la propiedad DataFormatString en el .aspx y ya tenemos la fecha corta en nuestro dataGridView
Nota: gracias Angel Hernandez hemos descubierto una nueva forma de hacerlo cambiando la propiedad htmlencode a false