Abruzzo SEO specialist, .Net programming and computer stuff
Se stai cercando una risposta al perchè il settaggio della proprietà DataFormatString non viene preso in considerazione da un BoundField, la risposta più corretta è “questo è un bug”. Un bug che per il quale nessuno alla Microsoft vuole prendersi la responsabilità.
In poche parole, se si ha un BoundField di tipo DateTime (o in generale un BoundField che necessita di essere formattato secondo una particolare forma) si deve utilizzare la proprietà DataFormatString in questo modo:
<asp:boundfield datafield="DateOfBirth"</asp:boundfield" dataformatstring=""{0:MM/dd/yyyy}""></asp:boundfield>
Ma, sfortunatamente, quando si esegue l’applicazione, l’output invece di essere una stringa di tipo data formattata come richiesto (MM/dd/yyyy), sarà una stringa apparentemente dello stesso tipo che si ottiene invocando il metodo ToString():
07/02/2007 7:35:54 PM
Il problema è riconducibile allo sforzo fatto da Microsoft nel cercare di prevenire i così detti attacchi cross site scripting; per questa ragione i BoundField vengono prima dati in pasto alla funzione di econding HtmlEncode e poi passati alla DataFormatString, che però non ritrovandosi più una data valida non potrà procedere oltre con la formattazione.
La soluzione è in questo caso quella di impostare la proprietà HtmlEncode = false come nell’esempio qui sotto.
<asp:boundfield datafield="DateOfBirth""</asp:boundfield" dataformatstring="{0:MM/dd/yyyy}" htmlencode="false"></asp:boundfield>
Technorati Tags: DataFormatString, HtmlEncode
Posts a cui potresti essere interessato:Mi chiamo Andrea Moro, sono un appassionato di informatica da quando avevo 8 anni e da quando mio padre mi regalò il C64.
Qualche anno più tardi, il mio primo pc e nel 1994 la prima esperienza con Internet, di cui mi sono subito innamorato e con cui oggi mando avanti la mia attività di Web Designing e posizionamento nei motori di ricerca.
Lascia una risposta