ASP.NETでのImageMapコントロールの使い方

4009 ワード

ASPを利用する.NET ImageMapコントロールは、ユーザーがクリックできる領域(ホットゾーン)を多く含む画像を作成します.これらの領域を「作用点」と呼びます.各作用点は、個別のハイパーリンクまたは再送イベントであってもよい.
共通のプロパティ:
HotSpotModeプロパティ
ホットスポット領域をクリックしたときのデフォルトの動作を取得または設定するには、HotSpotModeプロパティを使用します.ImageMapコントロールのHotSpotModeプロパティの列挙値は次の表に示します.
列挙値
説明
Inactive
何の操作もありません.つまり、ホットスポットのない普通の画像のようです.
NotSet
アイテムは設定されておらず、デフォルトでもあります.未設定という名前ですが、デフォルトでは指定したURLアドレスにリンクされた指向性操作が実行されます.URLアドレスが指定されていない場合は、デフォルトでアプリケーションルートディレクトリにリンクされます.
Navigate
操作項目を指定します.指定したURLアドレスにリンクします.URLアドレスが指定されていない場合は、デフォルトでアプリケーションルートディレクトリにリンクされます.
PostBack
操作項目を再送します.ホットスポット領域をクリックすると、コントロールのClickイベントがトリガーされます
注意:HotSpotModeプロパティは、ピクチャ内のすべてのホットスポット領域に対してクリックイベントのデフォルトの動作を定義しますが、場合によっては、ピクチャ内のホットスポット領域の動作が異なるため、ホットスポット領域ごとにHotSpotModeプロパティとその関連プロパティを個別に定義する必要があります.
HotSpotsプロパティ
HotSpotsプロパティは、HotSpotsオブジェクトのセットを取得するために使用されます.ImageMapコントロールはHotSpotクラスのインスタンスで構成されています.HotSpotは、画像マッピングのクリック可能な領域を定義します.ASP.NET Frameworkには3種類のHotSpotクラスがあります.
CircleHotSpot:画像マッピングで円形領域を定義します.RectangleHotSpot:画像マッピングで矩形領域を定義します.PolygonHotSpot:画像マッピングで不規則な形状領域を定義します.
CircleHotSpot、RectangleHotSpot、PolygonHotSpotの3つのサブクラスの例をHotSpotオブジェクトと呼びます.
サンプルコード:
Default.aspx
 
  

 



    8-4
   


   

       

           

                ImageMap
               

               
                                            Right="150" Target="_blank" Top="119" />
                                            Radius="39" X="241" Y="50" />
                                            Radius="39" X="241" Y="285" />
                                            HotSpotMode="Inactive" />
               

               

               

       

   




Default.aspx.cs
 
  
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void ImageMap1_Click(object sender, ImageMapEventArgs e)
    {
        String region = "";
        switch (e.PostBackValue)
        {
            case "Pro1":
                region = " 1";
                break;
            case "Pro2":
                region = " 2";
                break;
        }
        LabMessage.Text = " " + region + ".";
    }
}