ObjectDataSource を使用してビジネス オブジェクトにバインドされた FormView コントロールを含む ASP.Net 3.5 ページがあります。
ビジネス オブジェクトのプロパティの 1 つは DateTime 型であり、DateTime プロパティを含め、このオブジェクトに対して 2 方向のデータ バインディングを行いたいと考えています。
次に示すように、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>
私は何を間違っていますか?
アップデート:
バインド式のフォーマット文字列を次のように変更すると、
{0:d MMM yyyy HH:mm}
( HHとmmの間のコロンに注意してください)
...その後、双方向のデータバインディングが期待どおりに機能します。残念ながら、これはまさに私が望んでいたものではありません。コロンなしで 24 時間時計を使用することを望んでいたため、元の書式文字列です。これはまだ機能していません。その理由を知りたいですか? さらに良いことに、フレームワークのこの欠点を回避する方法を知りたいのですが、それでも宣言的なデータバインディングを行います。
ありがとう。