2016-10-12 5 views
-1

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

DB                     Мой LOCAL GridView     Мой пульт дистанционного управления GridView
    234.567,00           & NBSP                       234,567.00
          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> 

Это мой дб десятичное: enter image description here И мой удивительный результат: (Я ХОЧУ ЭТО) enter image description here

С ДРУГОЙ СТОРОНЫ: если я опубликовать мое приложение asp.net Заказчику: (I НЕ ХОЧУ ЭТО)

enter image description here

ответ

1

с сниппета ниже вы можете установить конкретные параметры форматирования номер для страницы с 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; 
    } 
1

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

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

+0

Это также работает, но это перекрывает все параметры культуры, а не только числовые форматы. Если это не проблема, то это действительно проще реализовать. – VDWWD

 Смежные вопросы

  • Нет связанных вопросов^_^