ASP.NET webcontrols在不同的文化设置中呈现错误

时间:2015-03-11 07:22:54

标签: asp.net globalization cultureinfo asp.net-webcontrol currentuiculture

我有一个自定义的网页控件。

循环中的一些代码:

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

所以这就是问题 - 我该如何解决?

1 个答案:

答案 0 :(得分:0)

您需要将double正确转换为字符串,例如:

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

或者像这样:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
dcell.Style["height"] = cellHeight.ToString(nfi) + "pt";
相关问题