C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: GridView・TemplateFieldでの書式指定方法


(過去ログ 140 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■82079 / inTopicNo.1)  GridView・TemplateFieldでの書式指定方法
  
□投稿者/ Artor (17回)-(2016/12/08(Thu) 13:14:26)

分類:[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イベントでカラムの書式を変更するなどで実装可能ですが、
バインド時に変更する方法があれば、お教えいただきたいです。


引用返信 編集キー/
■82080 / inTopicNo.2)  Re[1]: GridView・TemplateFieldでの書式指定方法
□投稿者/ WebSurfer (1091回)-(2016/12/08(Thu) 15:16:17)
No82079 (Artor さん) に返信

> DATE_1はテーブル(Oracle)上、Date型の項目です。
> GridView1にバインドするDataTableとして、TO_CHAR(DATE_1,'yyyy/mm/dd hh24:mi:ss')のように、
> 秒までSELECTしています。

Oracle はほとんど何も知らないのでググって調べただけですが、TO_CHAR でプロバイダが ASP.NET
に渡す DATE_1 は string 型になるのではないですか?

その想像が当たっているとすると、以下のような書式指定は無効だと思うのですが。

> Text='<%# Eval("DATE_1", "{0:yyyy/MM/dd}")%>'

DateTime 型で ASP.NET に渡すか、それができなくて string 型にせざると得ないなら yyyy/mm/dd
という形式にするか、それもできなくて yyyy/mm/dd hh24:mi:ss という形式の string 型にせざる
を得ないなら、以下の記事にあるように加工するメソッドを定義して用いてはいかがですか?

データバインド式
http://surferonwww.info/BlogEngine/post/2010/08/17/Data-bind-method.aspx

引用返信 編集キー/
■82081 / inTopicNo.3)  Re[2]: GridView・TemplateFieldでの書式指定方法
□投稿者/ Artor (18回)-(2016/12/08(Thu) 16:57:58)
WebSurfer 様

ご返信ありがとうございます!

>DATE_1 は string 型になるのではないですか?

まさに、ご指摘の通りでした。
つまらないミスで恥ずかしいです…申し訳ございません。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -