Il semble que l'encodage de la page se fasse avant d'appliquer le formattage. Donc si vous avez des caractères spéciaux dans le "DataFormatString", ça ne fonctionnera pas (comme dans le cas yyyy-MM-dd ou yyyy/MM/dd). Pour contrer ce problème vous devrez changer la propriété HtmlEncode à False.
<
asp:BoundField DataField="TransactionDate" HeaderText="Date" SortExpression="TransactionDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="false" />