BoundField DataFormatString problem
A note on why ASP.NET BoundField DataFormatString values such as {0:c} may fail to format numbers as currency.
Wondering why {0:c} isn’t formatting your number as currency? The solution turns out to be that you need to set the HTMLEncode property to false!