如何从GridView Eval中的sql处理decmal的货币格式?

时间:2016-10-12 08:14:11

标签: asp.net sql-server aspxgridview currentculture

我的本​​地机器是土耳其语,如果我运行我的asp.net应用程序,我可以很容易地从mysql数据库中看到我的十进制值,如下所示。这是我的愿望,一切都是正确的我想要的。我使用了“Text ='<%#Eval(”Veri“,”{0:N}“)%>'”。它在我的本地工作很好,但如果我发布它的结果如下。我想看到ny decimal如:

DB我的LOCAL GridVIEW我的远程GridView
234567 234.567,00 234,567.00
1234567 1.234.567,00 1,234,567.00


我的GridView代码:

  <asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Veri">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtVeri" runat="server" MaxLength="16" Enabled="false" Text='<%#Eval("Veri","{0:N}")%>' CssClass="form-control input-sm" Style="width: 100%;"></asp:TextBox>
                                        </ItemTemplate>
                                    </asp:TemplateField>

这是我的db小数: enter image description here 我的结果非常棒:(我想要这个) enter image description here

另一方面:如果我向客户发布我的asp.net应用程序:(我不想这样)

enter image description here

2 个答案:

答案 0 :(得分:1)

使用下面的代码段,您可以在Page_PreInit上使用GridView设置页面的特定数字格式设置,而无需更改整个UI语言。这当然会影响页面上的所有数字格式,而不仅仅是GridView。

protected void Page_PreInit(object sender, EventArgs e)
    {
        CultureInfo newCultureInfo = (CultureInfo)CultureInfo.CurrentCulture.Clone();
        NumberFormatInfo numberFormatInfo = (NumberFormatInfo)newCultureInfo.NumberFormat.Clone();
        numberFormatInfo.NumberDecimalSeparator = ",";
        numberFormatInfo.NumberGroupSeparator = ".";
        numberFormatInfo.NumberDecimalDigits = 2;
        newCultureInfo.NumberFormat = numberFormatInfo;
        System.Threading.Thread.CurrentThread.CurrentCulture = newCultureInfo;
    }

答案 1 :(得分:1)

通过树立文化,你会感觉更好。

这可以在web.config中使用<globalization uiCulture="tr" culture="tr-TR" />元素在站点范围内完成,也可以在页面指令<%@ Page UICulture="tr" Culture="tr-TR" %>

中的页面级别完成