У меня есть страница ASP.Net 3.5, которая содержит элемент управления FormView, связанный с бизнес-объектом с использованием ObjectDataSource.
Одним из свойств бизнес-объекта является тип DateTime, и я хочу сделать двухстороннюю привязку данных для этого объекта, включая свойство DateTime.
Я использую пользовательский формат для отображения свойства DateTime, как показано здесь:
<asp:TextBox ID="TextBoxDate" runat="server" Text='<%# Bind("Date", "{0:d MMM yyyy HHmm}") %>' />
Отображается просто отлично.
Проблема в том, когда я пытаюсь выполнить обновление. Я получаю следующее исключение:
Строка не была распознана как действительный DateTime.
Мой ObjectDataSource содержит явно установленный параметр UpdateParameter для этого свойства, но, похоже, он не имеет никакого значения.
<UpdateParameters>
<asp:Parameter Name="Date" Type="DateTime" />
</UpdateParameters>
Что я делаю не так?
UPDATE:
Оказывается, что если я изменю строку формата в выражении Bind на
{0:d MMM yyyy HH:mm}
(Обратите внимание на двоеточие между ЧЧ и мм )
... тогда двусторонняя привязка данных работает как положено. К сожалению, это не совсем то, что я хотел. Я надеялся использовать 24-часовые часы без двоеточия, отсюда моя исходная строка формата. Это все еще не работает, и я хотел бы знать, почему? И еще лучше, я хотел бы знать, как я могу обойти этот недостаток в рамках, но все же сделать декларативное связывание данных.
Спасибо.