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>
<
</asp:Label>
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
La propiedad dataformatstring sí funciona, simplemente hay que cambiar la propiedad htmlencode a false para que se aplique el formato elegido.Un saludo.
Muy bueno, corto y sencillo.Saludos...
Para preguntar utiliza los foros.