SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

改行やリンクをタグに自動置換するコントロール作成

簡単なWebカスタムコントロールの作成方法

  • このエントリーをはてなブックマークに追加

本稿では、改行やリンクの自動置換を行うラベルコントロールを例に、Webカスタムコントロールの作成方法を解説します。既存のコントロールを修正する形式で作成するので、初心者でも理解しやすくなっています。

  • このエントリーをはてなブックマークに追加

はじめに

 ASP.NETは非常に強力な基盤です。標準で用意されているコントロールもかなり便利なものばかりです。ただし、もちろん万能というわけではありません。

 Webカスタムコントロールは簡単に作ることができ、細かい挙動を変更するのに便利です。Webカスタムコントロールをどのように作成すればよいか一緒に見ていきましょう。

対象読者

 ASP.NETに興味のある方。

必要な環境

 Visual Studio 2005の環境で検証しています。2002、2003でも流用できると思います。

標準のラベル機能の確認

 データを表示する際、元データが改行つきのデータだった場合は、どのように表示させているでしょうか? まずは、標準のラベルコントロールを使った例を示します。

標準のラベル機能のテスト(C#)
string DBからのデータ = "a\r\nb\r\nc";
this.Label1.Text = DBからのデータ;
標準のラベル機能のテスト(VB.NET)
Dim DBからのデータ As String = "a" + vbNewLine + "b" + vbNewLine + "c"
Me.Label1.Text = DBからのデータ

 このように改行が入っているにもかかわらず、スペースが開いているだけになってしまっています。ASP.NETは、Webサーバ側でHTML(XHTML)に変換して出力しているため、改行は、HTMLでは\r\nなどで表現するのではなく<br>に、ASP.NETのようなXHTMLでは<br />に変換しなくてはいけません。

 それでは先ほどのコードを、改行を変換するように修正してみましょう。

改行をBRに置換してのテスト
string DBからのデータ = "a\r\nb\r\nc";
this.Label1.Text = DBからのデータ.Replace("\r\n", "<br />");
改行をBRに置換してのテスト
Dim DBからのデータ As String = "a" + vbNewLine + "b" + vbNewLine + "c"
Me.Label1.Text = DBからのデータ.Replace(vbNewLine, "<br />")

 実行結果は次のようになり、無事に改行されることが確認できます。

 ただし、このやり方は非常に問題があります。項目が多い画面の場合にも同じ要領でやっていかなくてはいけないのでしょうか? また、データバインディングを用いた場合に、このようなReplaceを行うことが本当によいことでしょうか?

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
はじめてのWebカスタムコントロールの作成

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

中 博俊(ナカ ヒロトシ)

大阪でフリーのソフトウェアエンジニア兼テクニカルライターとして日々新技術で楽しんでいる。MSMVP for C# ブログ:http://blogs.wankuma.com/naka/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/402 2006/06/01 00:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング