1

値をコントロールにバインドするとき、私はこれをたくさん持っています:

Text='<%# Bind("StartDate", "{0:dd.MM.yyyy}") %>'

ただし、この形式 (およびその他のいくつか) をヘルパーに抽出したいと思います。そして、これは私がしたことです:

public static class DateTimeExtension
{
    public const string CalendarDateFormat = "{0:dd.MM.yyyy}";
    public const string CalendarMonthFormat = "{0:MM.yyyy}";

    public static string ToCalendarDate(this DateTime dateToFormat)
    {
        return string.Format(CalendarDateFormat, dateToFormat);
    }

    public static string ToCalendarMonthDate(this DateTime dateToFormat)
    {
        return string.Format(CalendarMonthFormat, dateToFormat);
    }
}

しかし今、Bind 呼び出しを次のように変更すると、次のようになります。

Text='<%# Bind("StartDate", DateTimeExtension.CalendarDateFormat) %>'

例外があります:

System.Web.HttpException: A call to Bind was not well formatted.  Please refer to documentation for the correct parameters to Bind.

問題にならないように、web.configで名前空間を構成しています。私が好きなことを達成する方法はありますか?

4

1 に答える 1

4

Bind 式は ASP.NET コード生成の非常に特殊な部分であり、format パラメーターはリテラルでなければならないという制限があるため、Eval を使用してみてください。

Text='<%# Eval("StartDate", DateTimeExtension.CalendarDateFormat) %>' 

Bind と Eval の詳細については、こちらをご覧ください。

于 2012-06-27T07:31:39.793 に答える