Вы должны установить для HTMLEncode значение False:
<Columns>
<asp:BoundField HeaderText="Valor" DataField="ValorProposta" HtmlEncode="False" DataFormatString="{0:c}" />
</Columns>
MSDN : В версиях ASP.NET, предшествующих 3.5, необходимоустановите для свойства HtmlEncode значение false, чтобы отформатировать поля, не являющиеся строковыми типами данных.В противном случае значение поля преобразуется в строку с помощью метода преобразования по умолчанию перед применением строки формата, сохраненной в свойстве DataFormatString.