.NET TIPS

[ASP.NET]AdRotatorコントロールで任意の付加情報を表示するには?

山田 祥寛
2005/08/05

 「TIPS:[ASP.NET]AdRotatorコントロールでクリック率を管理するには?」でも紹介したように、AdRotatorコントロールを利用することで、あらかじめ設定した割合に従って広告バナーを切り替えて表示することができる。

 AdRotatorコントロールは、レガシーASP(ASP 3.0)の時代にはAd Rotatorコンポーネントとして提供されていた、歴史のあるコンポーネントである。ASP.NETになっても、その基本機能に変更はないが、唯一大きな変更点といえば、広告スケジュール・ファイルがプレーン・テキスト形式からXML(eXtensible Markup Language)形式に変更された点が挙げられるだろう。この変更に伴い、ASP.NETの広告スケジュール・ファイルでは、あらかじめ決められた設定項目のほかに、開発者自身が独自の情報を追加したりして拡張できるようになった。

 本稿では、この拡張機能を利用して、広告スケジュール・ファイルにカスタム要素として<Memo>要素を追加し、これを使って広告バナーの下部にキャッチフレーズを表示してみることにしよう。以下は、今回作成するサンプル・プログラムの実行画面だ。

本サンプルの実行画面
設定ファイルの内容に従って、リンク付きの広告バナーと、それに付随するキャッチフレーズ(この例では「マスターページ、セキュリティ・コントロールなど、ASP.NET 2.0の魅力溢れる世界を」というメッセージ)を切り替え表示する。

 それではさっそく、具体的な手順を見ていくことにしよう。

1.広告スケジュール・ファイルを設定する

 前述したように、AdRotatorコントロールの挙動は「広告スケジュール・ファイル」によって制御できる。広告スケジュール・ファイルの基本的な書式については、前掲のTIPSを参照していただくとして、ここでは、独自に追加した<Memo>要素に注目してほしい(以下のサンプル・コード参照)。

 このように、カスタムの拡張要素(本稿の例では、<Memo>要素)はそれぞれの<Ad>要素配下の子要素群の末尾に自由に追加することが可能だ。本稿では、<Memo>要素のみを追加しているが、もちろん、必要に応じて、複数のカスタム要素を追加することも可能だ。

<?xml version="1.0" encoding="Shift_JIS" ?>
<Advertisements>
  <Ad>
    <ImageUrl>
      http://www.atmarkit.co.jp/fdotnet/asp2review/index/asp2review_l.jpg
    </ImageUrl>
    <NavigateUrl>
      http://www.atmarkit.co.jp/fdotnet/asp2review/index/index.html
    </NavigateUrl>
    <AlternateText>ASP.NET 2.0が変えるWebアプリ開発の世界</AlternateText>
    <Impressions>40</Impressions>
    <Memo>マスターページ、セキュリティ・コントロールなど、ASP.NET 2.0の魅力溢れる世界を</Memo>
  </Ad>
  <Ad>
    <ImageUrl>
      http://www.atmarkit.co.jp/fdotnet/special/aspstruts01/aspstruts_l.jpg
    </ImageUrl>
    <NavigateUrl>
      http://www.atmarkit.co.jp/fdotnet/special/aspstruts01/aspstruts01_01.html
    </NavigateUrl>
    <AlternateText>ASP.NET vs. Struts フレームワーク徹底比較</AlternateText>
    <Impressions>20</Impressions>
    <Memo>Webアプリの代表的なアプリケーション・フレームワークASP.NET&Strutsを徹底比較</Memo>
  </Ad>
  <Ad>
    <ImageUrl>
      http://www.atmarkit.co.jp/fjava/javatips/images/java_tips_title.gif
    </ImageUrl>
    <NavigateUrl>
      http://www.atmarkit.co.jp/fjava/javatips/index.html
    </NavigateUrl>
    <AlternateText>Java TIPS</AlternateText>
    <Impressions>20</Impressions>
    <Memo>Javaプログラミングにかかわるさまざまなテクニックを紹介するTIPS集</Memo>
  </Ad>
  <Ad>
    <ImageUrl>
      http://www.atmarkit.co.jp/fdb/rensai/oodbrevive01/top.gif
    </ImageUrl>
    <NavigateUrl>
      http://www.atmarkit.co.jp/fdb/rensai/oodbrevive01/oodbrevive01_1.html
    </NavigateUrl>
    <AlternateText>オブジェクト指向データベースの復権</AlternateText>
    <Impressions>20</Impressions>
    <Memo>新たなデータベースの可能性。オブジェクト指向データベースの魅力を探る</Memo>
  </Ad>
</Advertisements>
広告バナーの情報を管理する広告スケジュールXMLファイル(ad.config)

2.カスタム要素を広告バナーの下部に表示する

 次に、Webフォームであるad_plus_cs.aspx(C#の場合。VB.NETではad_plus_vb.aspx)で広告スケジュール・ファイル(本稿の例ではad.config)をAdRotatorコントロールに関連付けよう。また、1で拡張した<Memo>要素の内容を読み込むのも、このWebフォームの役割だ。以下にそのコードを示す。

<%@ Page ContentType="text/html" Language="C#" %>
<script runat="Server">
// 対応する<Memo>要素の内容を、広告生成のタイミングでラベルに反映
void ad_AdCreated(Object sender, AdCreatedEventArgs e){
  memo.Text = (String)e.AdProperties["Memo"];
}
</script>
<html>
<head>
<title>広告バナーに付加情報を表示する</title>
</head>
<body>
<form runat="Server">
  <asp:AdRotator id="ad" runat="Server"
    AdvertisementFile="ad.config" Target="_blank"
    OnAdCreated="ad_AdCreated" />
  <br />
  <asp:Label id="memo" runat="Server" />
</form>
</body>
</html>
カスタム情報を広告バナーに付随するためのWebフォーム(C#版:ad_plus_cs.aspx)
 
<%@ Page ContentType="text/html" Language="VB" %>
<script runat="Server">
' 広告を生成するタイミングで、対応する<Memo>要素の内容をラベルに反映
Sub ad_AdCreated(sender As Object, e As AdCreatedEventArgs)
  memo.Text = e.AdProperties("Memo")
End Sub
</script>
<html>
<head>
<title>広告バナーに付加情報を表示する</title>
</head>
<body>
<form runat="Server">
  <asp:AdRotator id="ad" runat="Server"
    AdvertisementFile="ad.config" Target="_blank"
    OnAdCreated="ad_AdCreated" />
  <br />
  <asp:Label id="memo" runat="Server" />
</form>
</body>
</html>
カスタム情報を広告バナーに付随するためのWebフォーム(VB.NET版:ad_plus_vb.aspx)

 AdCreatedイベントは、AdRotatorコントロールが広告スケジュール・ファイルに基づいてバナー画像を選択表示する際に発生するイベントだ。ここでは、このAdRotatorイベントを利用して、選択された広告バナーに付随する<Memo>要素の値を取得しているというわけだ。

 カスタム要素の値には、AdCreatedイベント・ハンドラのパラメータに渡されるAdCreatedEventArgsオブジェクト(System.Web.UI.WebControls名前空間)のAdPropertiesプロパティを介してアクセスが可能だ。AdPropertiesプロパティでは、カスタム要素の情報を、要素名をキー名、本体テキストを値として持つIDictionaryインターフェイス(System.Collections名前空間)を実装したオブジェクトとして保持しており、要素名で簡単に値にアクセスできる。

 以上で一連の準備は完了だ。ad_plus_cs.aspx(C#の場合。VB.NETではad_plus_vb.aspx)を実行し、広告バナーの下部に付随するキャッチフレーズが表示されていることを確認してみよう。本稿冒頭のような結果が得られれば成功だ。End of Article

カテゴリ:Webフォーム 処理対象:AdRotatorコントロール
使用ライブラリ:AdRotatorコントロール
使用ライブラリ:IDictionaryインターフェイス(System.Collections名前空間)
使用ライブラリ:AdCreatedEventArgsクラス(System.Web.UI.WebControls名前空間)
関連TIPS:[ASP.NET]AdRotatorコントロールでクリック率を管理するには?
 
この記事と関連性の高い別の.NET TIPS
[ASP.NET]AdRotatorコントロールでクリック率を管理するには?
[ASP.NET]AdRotatorコントロールでデータベースから広告情報を取得するには?
[ASP.NET AJAX]AnimationコントロールでWebページにアニメーション効果を適用するには?(アクション要素編)
[ASP.NET AJAX]AnimationコントロールでWebページにアニメーション効果を適用するには?(制御要素編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間