2

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")) %>

しかし、それは必要ではないはずです。助けてくれてありがとう。

4

1 に答える 1

1

{0:d}カルチャを使用して日付をフォーマットする代わりに、日付を希望のフォーマットに強制することができます。例:

<%# Eval("OrderDate", "{0:MM/dd/yyyy}") %>
于 2010-10-08T22:52:39.857 に答える