我有一个 ASP.Net 3.5 页面,其中包含一个 FormView 控件,使用 ObjectDataSource 绑定到一个业务对象。
业务对象的属性之一是 DateTime 类型,我想为此对象进行 2 路数据绑定,包括 DateTime 属性。
我使用自定义格式来显示 DateTime 属性,如下所示:
<asp:TextBox ID="TextBoxDate" runat="server" Text='<%# Bind("Date", "{0:d MMM yyyy HHmm}") %>' />
它显示得很好。问题是当我尝试执行更新时。我得到以下异常:
字符串未被识别为有效的日期时间。
我的 ObjectDataSource 包含为此属性明确设置的 UpdateParameter,但它似乎没有任何区别。
<UpdateParameters>
<asp:Parameter Name="Date" Type="DateTime" />
</UpdateParameters>
我究竟做错了什么?
更新:
事实证明,如果我将 Bind 表达式中的格式字符串更改为
{0:d MMM yyyy HH:mm}
(注意HH和mm之间的冒号)
...然后两种方式的数据绑定按预期工作。可悲的是,这并不是我想要的。我希望使用没有冒号的 24 小时制,因此是我的原始格式字符串。这仍然不起作用,我很想知道为什么?更好的是,我很想知道如何解决框架中的这个缺点,但仍然进行声明性数据绑定。
谢谢。