0

У меня есть автономный веб-элемент управления.ASP.NET webcontrols визуализируется неправильно в разных настройках культуры

Часть кода в цикле:

double cellHeight = 12.34; 
Label dcell = new Label(); 
dcell.Style["height"] = cellHeight + "pt"; 
dcell.Text = cellHeight; 

Если я использую CultureInfo("cs-CZ")

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ"); 
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("cs-CZ"); 

после рендеринга, HTML, вышел

<span style="height:11,75pt">11,75</span> 

на самом деле то, что я ожидал, это:

<span style="height:11.75pt">11,75</span> 

height:11,75pt абсолютно ошибочный при визуализации в браузере, на самом деле браузер не учитывает 11,75pt как 11.75pt.

Однако мне нужно, чтобы текстовое поле отображалось на основе информации о культуре: в текстовом поле отображается 11,75, это правильно.

Так вот в чем проблема - как я могу исправить?

ответ

0

Вы должны преобразовать двойной строки правильно, например:

dcell.Style["height"] = cellHeight.ToString("F", CultureInfo.CreateSpecificCulture("eu-ES")) + "pt"; 

Или так:

NumberFormatInfo nfi = new NumberFormatInfo(); 
nfi.NumberDecimalSeparator = "."; 
dcell.Style["height"] = cellHeight.ToString(nfi) + "pt"; 
+0

еще один: например. double widthd = 59,25; dcell.Width = new Unit (widthd, UnitType.Point); то визуализированный html также является шириной 59,25pt, как этого избежать, кажется, что классы Unit отображают значение по культуре info.but на самом деле это не нужно. – user1614536