- - PR -
DataGrid内のデータのエンコードについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-05 14:41
いつもお世話になります。現在、ASP.NET(VS2003)にて開発を行っています。
▼処理内容 1.SQL文を発行しDataSetにデータを取得 2.DataGridにDataSetの内容をバインドする ▼問題点 1のSQL文を発行した際に、データの中に<br>などのデータが既に存在する。(このデータは他社が作成したアプリケーションで入力されたデータであり、入力チェック等で<br>を除去することは費用がかかる為に不可能とのこと) その結果2でバインドした後のデータグリッドには<br>と入力されているデータはブランクで表示されてしまいます。 できれば、HtmlEncodeを利用して、データグリッド内でも<br>と表示したいのですが、そのようなことは可能なのでしょうか? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28252&forum=7 を参考にしたりしているのですが、分かりません。 なにかいい方法があったら、ご教授ください。 |
|
投稿日時: 2006-07-05 14:52
DataGridの該当の列をテンプレート列にし、
<ItemTemplate> <%# System.Web.HttpUtility.HtmlEncode((string)DataBinder.Eval(Container, "DataItem.name")) %> </ItemTemplate> このように書くとエンコードされます。 ただし、これだとバインドしたデータがDBNullだったりするとおちるので、 私は、Nullチェック&エンコードした文字列を返すようなpublicメソッド(aspx.csに書くときはprotectedでも)を用意してやってそれを使うようにしています。 |
|
投稿日時: 2006-07-05 17:51
しょくばんさんありがとうございます。
思っていたとおりの結果を得られることができました!! データグリッドをテンプレート列に変換しないといけないのが大変ですけど、頑張ります。 |
1