我有一个绑定到 SqlDataSource 的 asp.net 4.0 Formview,托管在 IIS7 上,我正在显示一个编辑日期,如下所示:
<input id="OrderDateTextBox" type="text" value='<%# Eval("OrderDate", "{0:d}") %>' />
这通常按预期工作,但有时日期格式显示 d/m/y 而不是 m/d/y。发生这种情况时,页面刷新将显示正确的日期格式。
到目前为止,我已经尝试在 web.config 中设置默认文化,如下所示:
<globalization enableClientBasedCulture="false" culture="en-US" uiCulture="en-US" />
我还尝试在初始化时设置文化:
protected override void InitializeCulture()
{
UICulture = "en-US";
Culture = "en-US";
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture =
new CultureInfo("en-US");
base.InitializeCulture();
}
这些方法似乎都没有任何效果。但是,如果我使用以下语法提取值,则日期格式始终正确:
<%# DateTime.Parse(Eval("OrderDate").ToString()).ToString("d", CultureInfo.CreateSpecificCulture("en-US")) %>
但这不应该是必要的。谢谢你的帮助。