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

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

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

Re[2]: datagridの 


(過去ログ 28 を表示中)

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

■13135 / inTopicNo.1)  datagridの&nbsp;
  
□投稿者/ まこと (1回)-(2008/01/24(Thu) 23:36:10)

分類:[ASP.NET (VB)] 

こんにちは、はじめて質問させていただきます。

VB.NET2003でWebアプリケーションを作成しています。
OracleDBから取得したデータ結果をDataGridに入れて
Datagrid.Item(?).Cells.item(?).Text
これで値を取り出しているのですが、
このときNullを取得した項目には、HTMLの半角空白("&nbsp;")が表示されます。
そのままWeb画面のテキストボックスに反映させたときに、
そのままの文言が表示されてしまいます。
これをなくすいい解決方法があればご教授ください。

いろいろ調べてみて、このような技を使っているのもあったのですが、↓
If 〜item.text = "&nbsp;" then
TX_TEXT.text = ""
End if
どうもしっくりこなくて。。。

宜しくお願いします。
引用返信 編集キー/
■13138 / inTopicNo.2)  Re[1]: datagridの&nbsp;
□投稿者/ 七曜 (50回)-(2008/01/25(Fri) 00:07:44)
No13135 (まこと さん) に返信

環境が無いのでNullが&nbsp;となっている仕組みはちょっとわかりませんが
対象要素がHTMLEncodeされているということであれば、HTMLDecodeしてあげれば良いかと思います。

[HttpServerUtility.HtmlDecode メソッド (String)]
http://msdn2.microsoft.com/ja-jp/library/hwzhtkke(VS.80).aspx

ついでに書いておきますと、&nbsp;は半角空白になりますので、Trimも実行する必要があるかもしれませんね。

引用返信 編集キー/
■13140 / inTopicNo.3)  Re[1]: datagridの&nbsp;
□投稿者/ mあ@反省中 (9回)-(2008/01/25(Fri) 00:16:05)
No13135 (まこと さん) に返信
> このときNullを取得した項目には、HTMLの半角空白("&nbsp;")が表示されます。

?null はブランク(長さ0の文字列 or ...)じゃないの?

SQLで、
Select
Case xxx is null then ' ' else xxx end YYY
From
Table1
とか やってるだけじゃないのかな?
又は、
Coalesce(xxx,' ') As YYY

とか。。。

どこで半角空白が入るのか追ってみた方がいいのでは?


引用返信 編集キー/
■13154 / inTopicNo.4)  Re[2]: datagridの&nbsp;
□投稿者/ ぽぴ王子 (318回)-(2008/01/25(Fri) 06:37:42)
ぽぴ王子 さんの Web サイト
No13140 (mあ@反省中 さん) に返信

> ■No13135 (まこと さん) に返信
>>このときNullを取得した項目には、HTMLの半角空白("&nbsp;")が表示されます。 
> 
> ?null はブランク(長さ0の文字列 or ...)じゃないの?

これですが、DataGrid が &nbsp; を入れているはずです。
空文字列(Null)をセットした場合は、そのままだとタグ上で

<table>
  <tr>
    <td></td>
  </tr>
</table>

のような感じになるので、<td></td> を <td>&nbsp;</td> に変換しているのだと
思われます。
それを DataGrid から値を取り出すと、スレ主さんのようなことになるのではないかと。

基本的には元のテーブルから取り出すのが一番手っ取り早いですが、そうもいかない
場合は七曜さんの書かれている HtmlDecode メソッドを使うのが素直だと思います。
&nbsp; 以外に &lt; とか &gt; とか &amp; なんかもあるかもしれないし。

引用返信 編集キー/
■13155 / inTopicNo.5)  Re[2]: datagridの&nbsp;
□投稿者/ まこと (2回)-(2008/01/25(Fri) 09:28:34)
スレ主です。
ぽぴ王子様のおっしゃられるとおり、&nbsp; が入るのはDataGridの仕様みたいです。
HttpServerUtility.HtmlDecode メソッドを使用する関数を作って、
逐一通していこうかと思います。

みなさまご丁寧にありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -