|
分類:[VB.NET/VB2005 以降]
いつもお世話になっております。
【開発環境】 ASP.net / VB 2013 / .NetFramework 4 GridViewを使用したWeb開発を行っています。
【問題点】 TemplateFieldで、データバインド時に日付フォーマットを指定したいのですが、反映されません。 具体的には、下記GridViewで、LblDate1に「yyyy/MM/dd」形式でデータ表示したいのですが、秒まで表示されてしまいます。
BoundFieldの場合は、フォーマット指定を有効にするために、 HTMLEncodeプロパティをFalseにすれば良いようですが、 TemplateFieldの場合はどうしたらよいのでしょうか?
【事象】 DATE_1はテーブル(Oracle)上、Date型の項目です。 GridView1にバインドするDataTableとして、TO_CHAR(DATE_1,'yyyy/mm/dd hh24:mi:ss')のように、秒までSELECTしています。
<asp:GridView CssClass="aaa" ID="GridView1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label ID="LblDate1" runat="server" Text='<%# Eval("DATE_1", "{0:yyyy/MM/dd}")%>' /><br /> </ItemTemplate> <ItemStyle Width="150px" HorizontalAlign="Left" /> </asp:TemplateField> </Columns> </asp:GridView>
【補足】 縦スクロール時のヘッダ固定・横スクロール時のヘッダ連動を行っているので、 BoundFieldではなく、TemplateFieldを使用したいです。 最悪、データSELECT時に書式を変更したり、 GridViewのRowCreatedイベントでカラムの書式を変更するなどで実装可能ですが、 バインド時に変更する方法があれば、お教えいただきたいです。
|