这是ASP:RangeValidator控件需要从页/线程和所有建议它的文化信息网上周围找到合适的文化似乎是设置的CultureInfo的线程上

里克施特拉尔的西风博客是典型的建议

然而,由于运行在这样的服务器代码中的问题,我们正在剥出我们先前使用随后这个建议的代码。

我的问题是:有没有为我设定一个RangeValidator控件的文化而不与主页/线程搞乱文化的方式。我想RangeValidators尊重浏览器设置,但不幸的是他们,而不是尊重服务器的文化。

有帮助吗?

解决方案

由于已经有过这个,我要回答我的问题。没有答案

答案是是,这并不显得possible-没有办法直接设置为校验器培养。

在我能够完成我有在英语文化始终运行在服务器端的代码,但随后导致验证工作在浏览器中培养目标的方法是在Page_PreRender结束设置线程的CurrentCulture。因此直到该点在英语文化的代码运行,但我们在时间为它是有效,用于当运行时asp.net使用它来建立的验证设定的培养。

这工作得很好的验证的cient端操作,在我的情况下,允许在法国的浏览器用户在法国的格式输入数字。但是有一个进一步gotcha-如果你有代码在提交/回传验证服务器端,这将验证故障 - 现在看来,上回发验证的原始文化的设置不会被保留,他们在使用文化场所时间,他们进行了验证服务器端:当然法国号码不然后为有效观看,并且验证失败

我希望这可以帮助别人谁遇到同样的问题。

其他提示

另一个(和IMHO更好)的答案是在RangeValidator控件使用内联服务器代码:

<asp:RangeValidator ID="txtLockMaxRangeValidator" runat="server"
     ValidationGroup="templateInfo" ControlToValidate="txtLockMaxFontSize"
     CssClass="validatorTextbox" 
     MinimumValue="<%# (0.01).ToString(System.Globalization.CultureInfo.CurrentUICulture)%>" 
     MaximumValue="9999" Type="Double" Text=">0 and <=9999" 
     ToolTip="<%$ Resources:Resource, TemplateInfo_maxFontValidator %>" 
     Display="Dynamic" />

通过此链接推荐

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top