A new oddity seems to have cropped up after moving our projects from asp v2.0 b2 to asp v2.0 rc1...
My gridview's have boundfield's with the DataFormatString set to {0:C}.
<asp:gridview runat="server" id="GridView1" width="100%"
OnRowDataBound="GridView1_RowDataBound" autogeneratecolumns="False" cellpadding="6" DataKeyNames="ShoppingCartDetailID,Quantity" DataSourceID="SqlDataSource1"
>
<EmptyDataTemplate>There are no items in the cart.</EmptyDataTemplate>
<headerstyle />
<Columns>
<asp:BoundField headertext="Product Code" DataField="ProductCode" >
<ItemStyle Wrap="False" />
</asp:BoundField>
<asp:BoundField HeaderText="Description" DataField="Description" />
<asp:BoundField HeaderText="Your Price" DataField="ItemPrice" DataFormatString="{0:C}" >
<ItemStyle HorizontalAlign="Right" />
</asp:BoundField>
<asp:TemplateField HeaderText="Qty">
<ItemTemplate>
<asp:TextBox id="Quantity" runat="server" Text='<%# Eval("Quantity") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField HeaderText="Line Total" DataField="ExtendedPrice" DataFormatString="{0:C}">
<ItemStyle HorizontalAlign="Right" />
</asp:BoundField>
</columns>
</asp:gridview>
Previous to the RC1 build (v2.0.50727) the decimal typed columns were returning the number formatted for currency (US currency: “$0.00“) but now just seems to be ignoring the “C“ format.
However, any routines that are calling the decimal ToString(“C“), and even a regular string.Format(“{0:C}“) works as expected.
Anybody else seen this problem?