将值绑定到控件时,我有很多这样的内容:
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中配置了名称空间,因此不应该成为问题。有没有办法实现我喜欢的目标?
答案 0 :(得分:4)
尝试使用Eval作为Bind表达式是ASP.NET代码生成的一个非常特殊的部分,它有一个限制,即format参数必须是文字。
Text='<%# Eval("StartDate", DateTimeExtension.CalendarDateFormat) %>'
详细了解Bind和Eval here。