DataFormatString non viene applicato ai BoundField

<asp:BoundField DataField="data"
      HeaderText="Data" SortExpression="data"
     
DataFormatString="{0:d}" />

Perchè questa riga di codice (ehm... markup) genera sempre la scritta "29/05/2005 0.00.00" come se facessa una banale ToString(), invece che "29/05/2005", cioè il risultato di una String.Format con la stringa di formato {0:d} (cioè in formato Short Date)?

All'inizio pensavo ad un errore nella stringa di formato, ma consultando quella che è la mia bibbia delle stringhe di formato in C# mi sono convinto che l'errore non era mio: dopo qualche ricerca su Google ho trovato questo interessante post su alcuni breaking changes apportati in ASP.NET 2.0.

Tra questi uno indica che ora è necessario applicare HtmlEncode="false" per poter ottenere correttamente la formattazione: sembra che per qualche motivo il team di ASP.NET ha deciso di applicare l'HtmlEncode prima di applicare il Format, rendendo quindi inefficace la stinga di formato applicata.

La stringa corretta è quindi:

<asp:BoundField DataField="data"
      
HeaderText="Data" SortExpression="data"
      DataFormatString="{0:d}" HtmlEncode="false" />

Questo si applica anche agli header delle colonne: se mettete HeaderText="Richiesta<br>Clip" ma non dite ad ASP.NET di non HtmlEncodarlo non vedrete il ritorno a capo.

Bug o feature? Questo è il problema...

powered by IMHO 1.3

posted @ giovedì 27 aprile 2006 14:21

Print

Comments on this entry:

# Re: DataFormatString non viene applicato ai BoundField

Left by Simone Chiaretta at 28/04/2006 12:29
Gravatar
Su google non è uscito... :-)
che i tips siano mal indicizzati

# re: DataFormatString non viene applicato ai BoundField

Left by giancarlo burato at 25/03/2007 17:22
Gravatar
davvero utile grazie 1000.


# re: DataFormatString non viene applicato ai BoundField

Left by Bicius at 30/08/2007 15:38
Gravatar
Che infame VS ... grazie mille ;)
Ecco perchè nn funzionava :D
Comments have been closed on this topic.
«dicembre»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234