Formation PUB770 : ASP.NET WebForms, H-2015 Le GridView : un premier contrôle orienté données

16.5 Ajuster l'affichage d'un champ de type Date ou DateTime (DataFormatString)


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é.

BoundField

Pour contrôler le format d'une date affichée à l'aide d'un BoundField, on utilisera l'attribut DataFormatString.

Ex :

Fichier .aspx (ASP.NET)

<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.

TemplateField

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 : 

Fichier .aspx (ASP.NET)

<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>

Pour plus d'information

« 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é

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre