BoundField e la formattazione
Quando bisogna visulizzare una data o un numero in una GridView o anche in altri controlli che visualizzano i dati spesso utilizziamo la formattazione ad hoc esempio per la data per non far visualizzare il TIME oppure per visualizzare in modo esteso la data magari facendo comparire il nome del giorno o il nome del mese.
Se utilizziamo un TemplateField non abbiamo nessun problema basta utilizzare l'overload del Metodo Eval Esempio
<asp:TemplateField HeaderText="Data News" >
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("DataEvento", "{0:dd MMMM yyyy}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Se invece usiamo il BoundField dobbiamo usare la proprietà DataFormatString
<asp:BoundField DataField="DataEvento" HeaderText="DataEvento" SortExpression="DataEvento" DataFormatString="{0:dd MMMM yyyy}") />
La prima volta che ho usato il BoundField mi sono accorto che la formattazione non funzionava e non capivo il motivo, indagando sull'help bisogna settare a False la proprietà HtmlEncode
il motivo come riportato dall'help
When the HtmlEncode property is true, the value of the field is HTML encoded to its string representation before the formatting string is applied. For some objects, such as dates, you might want to control how the object is displayed with a formatting string. In those cases, you must set the HtmlEncode property to false.
martedì, 31 ott 2006 Ore. 15.24