- PR -

DataFormatString無効!?

投稿者投稿内容
のすけ
常連さん
会議室デビュー日: 2006/11/14
投稿数: 28
投稿日時: 2006-11-21 09:48
いつもお世話になっております。
標記の件につき質問させて頂きます。

<前提>
言語:ASP.NET 2.0 (VB.NET)
環境:VisualStudio2005

<要件>
FormViewに表示させる内容(データセットとバインドしている数値項目)をカンマ編集したい。

<質問>
連結式(カスタムバインドにおけるコード式)に以下のように組み込んでも編集されないのですが、なぜでしょうか。

 Eval("****", "{0:n}") ("****"は項目名)

<現状>
Eval("****", "{0:n}")の"{0:n}"の部分を"{0:c}"としても"{0:d}"としても、全く編集されない。(認識されない。)

どなたか、ご存知の方がいらっしゃいましたら、ご教示ください。

以上宜しくお願い申し上げます。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-11-21 13:37
引数が2つしかないからでは?3つでは?
のすけ
常連さん
会議室デビュー日: 2006/11/14
投稿数: 28
投稿日時: 2006-11-21 13:57
囚人さん

ご回答ありがとうございます。

ASP.NET 2.0 Webアプリケーション開発入門(葛西秋雄 著)には、引数2つで実装されているサンプルが載っているのですが。。。

引数が3つとすると、第3引数は何なのでしょうか。

ご教示のほど、宜しくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-21 14:17
DataBinder.Eval だとして、書式指定するには、

コード:

    DataBinder.Eval(obj, "[項目名]", "{0:yyyy-MM-dd}")


のようになります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-11-21 14:20
失礼しました。DataBinder.Eval メソッドの事と勝手に解釈してました。(だったら、DataBinder.Eval と書きますよね)
TemplateControl.Eval メソッドの事ですよね。

引用:

Eval("****", "{0:n}")の"{0:n}"の部分を"{0:c}"としても"{0:d}"としても、全く編集されない。(認識されない。)


「編集されない」「認識されない」とはどういう概念ですか?
****の部分にどういう値を書いていて、期待している値は何で、実際の結果は何になっているんでしょうか?

_________________
囚人@わんくま同盟
囚人のジレンマな日々


[ メッセージ編集済み 編集者: 囚人 編集日時 2006-11-21 14:21 ]
のすけ
常連さん
会議室デビュー日: 2006/11/14
投稿数: 28
投稿日時: 2006-11-21 14:40
囚人さん

言葉足らずの部分があり、申し訳ありません。

<前提>

まず前提として、上記の通り、VisualStudio2005で(ASP.NET 2.0 (VB.NET))で開発しており、そこでGUIで実装をしております。

よって、Evalメソッドがどのクラスのメソッドなのか意識しておらず、また、理解していなかったのが現状です。

ご参考として、コードビハインド部分の該当箇所を記載します。

<asp:Label ID="POINTLabel" runat="server" Text='<%# Eval("POINT", "{0:n}") %>'></asp:Label></td>

<現状>

>Eval("****", "{0:n}")の"{0:n}"の部分を"{0:c}"としても"{0:d}"としても、全>く編集されない。(認識されない。)

の意味合いですが、

1."****"には、バインドしているDB(テーブル)の項目名が入っています。(上記のサンプルコードの"POINT"に当たる部分)

2.期待する結果は、当該項目が「200000」であれば、「200,000」と編集したいというのが要件です。そして、結果は「200000」のまま出力される、ということです。
(また、{0:c}だと、「\200,000」と編集されると考えてられるが、実際は「200000」のまま出力される、ということです。)
(ちなみに、引数1つ(項目名のみ)ですと、「200000」が出力されます。)

これで、ご質問の前提の情報が伝わりましたでしょうか。
以上、宜しくお願い致します。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-11-21 14:50
引用:

のすけさんの書き込み (2006-11-21 14:40) より:

1."****"には、バインドしているDB(テーブル)の項目名が入っています。(上記のサンプルコードの"POINT"に当たる部分)

2.期待する結果は、当該項目が「200000」であれば、「200,000」と編集したいというのが要件です。そして、結果は「200000」のまま出力される、ということです。


Eval で戻ってきた値が文字列だったりすると編集できないんじゃないかな。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-11-21 15:21
引用:

Eval で戻ってきた値が文字列だったりすると編集できないんじゃないかな。


そんな気がしますね。POINTの型はなんでしょう?
_________________
囚人のジレンマな日々

スキルアップ/キャリアアップ(JOB@IT)