Как обработать валютный формат decmal из sql внутри GridView Eval?

Моя локальная машина турецкая, если я запускаю приложение asp.net, я легко вижу свое десятичное значение из базы данных mysql, как показано ниже. Это мое желание, и все правильно, что я хочу. я использовал "Text = '<% # Eval (" Veri "," {0: N} ")%>'". это прекрасно работает в моем регионе, но если я опубликую его результат ниже. я хочу видеть ny десятичный как:

БД My LOCAL GridVIEW My Remote 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>

Это мой десятичный БД: введите описание изображения здесь И мой потрясающий результат: (Я ХОЧУ ЭТОГО) введите описание изображения здесь

С другой стороны: если я опубликую свое приложение asp.net для Клиента: (Я НЕ ХОЧУ ЭТОГО)

введите описание изображения здесь

2 ответа

Решение

С помощью приведенного ниже фрагмента вы можете установить конкретные настройки формата номера для страницы с GridView на Page_PreInit без изменения всего языка интерфейса. Это, конечно, повлияет на все числовые форматы на странице, а не только на 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;
    }

Вам будет лучше, если вы установите культуру.

Это можно сделать для всего сайта в файле web.config, используя <globalization uiCulture="tr" culture="tr-TR" /> элемент, или на уровне страницы в директиве страницы <%@ Page UICulture="tr" Culture="tr-TR" %>

Другие вопросы по тегам