Dopo aver settato la proprieta' DataFormatString per un BoundField in una GridView in ASP.NET 2.0,
il valore che viene mostrato quando la pagina e' renderizzata non e' formattato come dovrebbe.
Per esempio per una colonna di tipo Date, settando DataFormatString="{0:d}",
la data dovrebbe essere mostrata come data corta nel formato "dd/mm/yyyy",
ma invece e' mostrata come "dd/mm/yyyy hh:mm:ss".
Questo succede perche il valore del campo e' passato alla funzione HTMLEncode
prima di essere formattato, quindi la formattazione essendo fatta su un campo gia "encoded"
non funziona.
In ASP.NET infatti l'encoding e' abilitato di default su tutti i campi,
per evitare problemi tipo il Cross-Site Scripting (XSS).
La soluzione al problema, e' di settare la proprieta HtmlEncode del BoundField a False:
<asp:BoundField DataField="DateAdded" DataFormatString="{0:d}" HtmlEncode="False" />
Avendo disabilitato l'encoding, e' necessario verificare manualmente che il dato non contenga
caratteri non permessi.