Lorsqu'une donnée est affichée dans un GridView, il est possible de spécifier son format d'affichage. Dans un BoundField, c'est l'attribut DataFormatString qui permettra de préciser le format désiré. Dans un TemplateField, on précisera plutôt ce format à l'aide d'un paramètre dans la fonction Eval(), qui est utilisée pour spécifier la valeur à afficher.
Dans les deux cas, on devra utiliser des codes de format prédéterminés. Les différents codes disponibles sont expliqués sur MSDN.
Ceci sera particulièrement utile lorsqu'un GridView affiche des dates. En effet, par défaut, le format d'affichage des dates n'est pas intéressant (ex : 2014-01-21 00:00:00). C'est pourquoi on voudra presque toujours préciser le format désiré.
Pour contrôler le format d'une date affichée à l'aide d'un BoundField, on utilisera l'attribut DataFormatString.
Ex :
<asp:GridView ...>
<Columns>
...
<asp:BoundField DataField="produit_modification" DataFormatString="{0:d MMMM yyyy}" ... />
...
</Columns>
</asp:GridView>
Attention : si vous travaillez avec un Framework .NET antérieur à 3.5, vous devrez mettre l'attribut HtmlEncode à false lorsque vous utilisez DataFormatString. Sans cet attribut, les données étaient converties en chaîne avant l'application du format donc le format devenait inopérant. Ce problème est réglé depuis le Framework 3.5.
Si vous travaillez avec un TemplateField plutôt qu'un BoundField, la date sera affichée à l'aide d'un simple Label. Son format sera précisé directement lors de l'évaluation de l'expression à afficher.
Ex :
<asp:GridView ...>
<Columns>
...
<asp:TemplateField >
<ItemTemplate>
<asp:Label ID="labelModification" runat="server" Text='<%# Eval("produit_modification", "{0:d MMMM yyyy}") %>' />
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
« BoundField.DataFormatString, propriété ». MSDN. http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx
« Chaînes de format de date et d'heure personnalisées ». MSDN. http://msdn.microsoft.com/fr-ca/library/8kb3ddd4.aspx
« How To Set a Date Format In GridView Using ASP.NET or How to format datetime in gridview boundfield and template columns ». Aspdotnet-Suresh. http://www.aspdotnet-suresh.com/2011/05/how-to-set-date-format-in-gridview.html
« GridView: Bind date format in BoundField using your web.config settings ». HP's blog. http://hspinfo.wordpress.com/2008/01/17/gridview-bind-date-format-in-boundfield-using-your-webconfig-settings/
« Date Formatting in C# ». Mikesdotnetting. http://www.mikesdotnetting.com/Article/23/Date-Formatting-in-CSharp
▼Publicité