【发布时间】:2010-10-08 18:26:47
【问题描述】:
我有一个绑定到 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")) %>
但这不应该是必要的。感谢您的帮助。
【问题讨论】:
-
你确定这些是随机的吗?您看到的事件有什么共同点吗?
-
嗯,它似乎发生在一段时间不活动之后,也许是在会话到期之后?
标签: asp.net webforms date-format