IIS7でホストされているSqlDataSourceにバインドされたasp.net4.0Formviewがあり、次のように編集する日付を表示しています。
<input id="OrderDateTextBox" type="text" value='<%# Eval("OrderDate", "{0:d}") %>' />
これは通常、期待どおりに機能しますが、日付形式でm / d/yではなくd/m/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")) %>
しかし、それは必要ではないはずです。助けてくれてありがとう。