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

尝试使用 Eval 作为 Bind 表达式是 ASP.NET 代码生成的一个非常特殊的部分,它有一个限制,即格式参数必须是文字。

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

在此处阅读有关 Bind 和 Eval的更多信息。

于 2012-06-27T07:31:39.793 回答