- PR -

BoundField列のDataFormatStringが効かない(ASP.NET2)

1
投稿者投稿内容
KEN@
会議室デビュー日: 2004/02/07
投稿数: 12
投稿日時: 2006-01-26 18:24
 こんにちは。
 現在Windows2000 Pro, VS2005 Pro, ASP.NET2.0, C#で
Webアプリケーションを構築しています。

 GridViewコントロールにBoundField列を追加し、
DataFormatStringプロパティで表示する書式を設定していますが、
効果が発揮されなくて困っています。

★私が検証したコード★
aspx側
コード:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Number1" DataFormatString="{0:N0}" />
<asp:ButtonField DataTextField="Number1" DataTextFormatString="{0:N0}" />
</Columns>
</asp:GridView>



cs側: Page_Loadイベントにて下記を記述
コード:

DataTable wTable = new DataTable();
wTable.Columns.Add("Number1", typeof(decimal));
DataRow wRow = wTable.NewRow();
wTable.Rows.Add(wRow);
wRow["Number1"] = 123456789.0123M;
GridView1.DataSource = wTable;
GridView1.DataBind();



これで、どちらの列も"123,456,789"と表示されるハズですが、
BoundField列のみ123456789.0123と、データがそのまま表示されてしまいます。

私の使い方が間違っているのでしょうか...
(ヘルプの例も同じような形なのですが)

私以外でこのような現象に遭われている方、
解決された方はいらっしゃらないでしょうか?

*コードが見難かったので更新。

[ メッセージ編集済み 編集者: KEN@ 編集日時 2006-01-26 18:26 ]
KEN@
会議室デビュー日: 2004/02/07
投稿数: 12
投稿日時: 2006-02-01 10:46
自己レスです。
どうやら.NETの不具合のようです。
回避するには、次のようにHtmlEncodeを無効にすれば大丈夫でした。
コード:
  <asp:BoundField DataField="Number1" DataFormatString="{0:N0}" HtmlEncode="false" />

Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-02-03 07:25
引用:

どうやら.NETの不具合のようです。
回避するには、次のようにHtmlEncodeを無効にすれば大丈夫でした。


不具合ではなくバグ修正に伴う仕様変更のようです。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
1

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