- - PR -
[ASP.NET]DataGridの内容をCSV出力する際に、項目がNULLだとおかしくなる
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-24 14:37
また皆様のアドバイスをいただきたく、投稿させていただきます。
こちらの過去ログを参照し、CSV出力の処理を作りました。 一点を除いて思い通りに出力はされました。 問題は、DataGridのカラムでNULLの場所がある場合、出力ファイルには ←と出てしまうのです。 If文を入れたりしたのですが、どうしても の部分は のままでした。 じゃぁ、DataGridセット時にNULLの場合は" "をセットすればいいか、とも 思ったのですが、データソースでセットしているため、それもできませんでした。 どのようにすればCSV出力時に が" "(全角スペース)にすることができますでしょうか? 以下が実際の処理です。 ---------------------------------------------------------------------------- Dim sb As String = "" Dim grd_col As DataGridColumn Dim grd_row As DataGridItem Dim grd_cell As TableCell 'oGridはDataGridです Response.ContentType = "Application/octet-stream" Response.ContentEncoding = Encoding.GetEncoding("Shift-JIS") Response.AddHeader("Content-Disposition", "inline;filename=Karute_data.csv") For Each grd_col In oGrid.Columns If sb <> "" Then sb = sb & "," End If 'ヘッダーテキスト sb = sb & grd_col.HeaderText Next grd_col Response.Write(sb & vbNewLine) 'グリッド内容 For Each grd_row In oGrid.Items sb = "" For Each grd_cell In grd_row.Cells If sb <> "" Then sb = sb & "," End If sb = sb & grd_cell.Text Next grd_cell Response.Write(sb & vbNewLine) Next grd_row Response.End() | ||||
|
投稿日時: 2004-08-24 14:50
>If文を入れたりしたのですが、どうしても の部分は のままでした。
どのようなIF文を入れたのでしょうか? 単に文字列の" "だったら空文字を出力するではダメですか? デバッグした時に項目がNULLの場合のgrd_cell.Textに何がはいっていますか? | ||||
|
投稿日時: 2004-08-24 14:58
NAL-6295です。
HTTPUtilityクラスがあるので、それのHtmlDecodeを利用して下さい。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||
|
投稿日時: 2004-08-24 15:04
おそらくHtmlDecodeを使用すると半角スペースになるので
全角にする処理が別途必要になると思います。 | ||||
|
投稿日時: 2004-08-24 15:50
>burton999さん
>単に文字列の" "だったら空文字を出力するではダメですか? やってみたら出来ました。 最初に作ったIF文は普通に If grd_cell.Text <>"" then とやっていたためにならなかったのです。 あたりまえですよね、上でShift-JISを指定していたら、半角スペースは" に なってしまうんですよね(^^; NAL-6295さん、burton999さんありがとうございました。 | ||||
|
投稿日時: 2004-08-24 16:11
念のために書いておきますが…
あたりまえじゃないです、ちがいます。(T_T) |
1