2004.11.18

repeater内で複数のタグ付き文字を出す為には

datagridやrepeaterを使って明細を作る機会というのが多いと思います。
そして作成をしていくうちに、Aタグを使った文字を出力する場面に直面する時がきた時
どのようにすればよいか紹介したいと思います。

asp:HyperLinkを活用する。
HyperLinkを活用する場合は
HyperLink.Text に表示したい文字を
HyperLink.NavigateUrlにリンク先を記述する事で実現します。

ただしこのやり方ですと ひとつのHyperLinkにひとつのURLしか記述できません。

なので複数件 データが出る場合困ってしまいます。
asp:Labelにタグを直書きすると解決できそうですが、
タグを複数書くとエラーで落ちてしまう可能性があります。

なのでrepeaterで作成した場合、ItemDataBound処理の時以下のようにすれば解決されます。

Dim row As DataRowView = CType(e.Item.DataItem, DataRowView)
CType(e.Item.FindControl("tdHoge"), HtmlTableCell).InnerHtml = row("hoge")
※row("hoge")がDBNULLの場合システムエラーでおちてしまうので別の関数を使う必要があります

 なお、InnerTextを使った場合タグがそのまま表示されてしまうので注意が必要です。

複数タグが入ったデータを表示する場合に是非お使いください。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ntakayama