![]() |
Web Development »
ASP.NET »
General
Intermediate
ASP.NET 2.0 -- ImageMapBy Namratha ShahASP.NET 2.0 -- ImageMap |
C#2.0, Windows, .NET2.0, ASP.NET, VS2005, Dev
|
||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
Image Control is added to the standard control library in ASP.NET 2.0. When working with this control I found it be quite interactive. In my previous projects I have simulated the behaviour of this control using javascript. But this control makes developer's life much easier. Let us now create a small application that will interact with the user when he clicks on the Image and tells him where exactly he has clicked.
Please note that the co-ordinates for the Image as per the 1024-768 pixels.
1. Let us create an asp.net project and add an image control to the default.aspx.
2. Add the an image called PieChart.aspx to the project.
3. We are going to add two labels under the form tag in a div to display the name of the color clicked by the user.
<div>
<asp:Label ID="areaClicked" runat="server" Text="Area Clicked : "></asp:Label>
<asp:Label ID="imageColor" runat="server" Text=""></asp:Label>
</div>
4. Set the imageURL of the image as piechart.jpg as shown
<asp:ImageMap ID="ImageMap1" runat="server" ImageUrl="~/PIECHART.JPG"
OnClick="ImageMap1_Click1">
5. There are 3 types of HotSpots which are available with ImageMap : Circle,Rectangle and Polygon. We will see how to use all of them in this example.
6. First let us create a Circular HotSpot such that it will cover the tips of all the colors. Please note that the HotSpot mode should be postback i.e. on clicking this area on the image the form will be posted back and on post back the value received will be "C".ALong with that we also need to set the X and Y co-ordinates ( these are the center co-ordinates of the pie-circle ) and define the radius = 100 which will form a circle with radius 100 pixels around the sport with X-Y co-ordinates.
<asp:CircleHotSpot X="468" Y="230" HotSpotMode="PostBack" AccessKey="C" Radius="100" NavigateUrl="~/Default.aspx" PostBackValue="C"/>
7. ImageMap provides one good feature called AccessKey which also you to access the HotSpot area directly using the keyboard. Let us set the AccessKey for Circle as "C".
8. Now let us add polygonhot spot for each of the colors as shown below. Note that in case of polygon hotspot we need to set the co-ordinates of the hotspot. We need to set the mode = postback and access keys for each one as shown below.
<asp:PolygonHotSpot HotSpotMode="PostBack" avigateUrl="~/Default.aspx" Coordinates="468,230,470,21,318,31,180,77" AccessKey="G" AlternateText="Green" PostBackValue="G"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,180,77,42,235,219,403" AccessKey="B" AlternateText="Blue" PostBackValue="B"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,266,418,623,425,875,300" AccessKey="R" AlternateText="Red" PostBackValue="R"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,470,21,673,45,875,300" AccessKey="Y" AlternateText="Yellow" PostBackValue="Y"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx"
Coordinates="468,230,221,406,244,412,265,417" AccessKey="V" AlternateText="Violet"
PostBackValue="V"/>
9. Now let us add an alternate text to each of the hotspots. This text will be shown as tooltip.
<asp:CircleHotSpot X="468" Y="230" HotSpotMode="PostBack" AccessKey="C" Radius="100" NavigateUrl="~/Default.aspx" PostBackValue="C" AlternateText="Circle"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,470,21,318,31,180,77" AccessKey="G" AlternateText="Green" PostBackValue="G"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,180,77,42,235,219,403" AccessKey="B" AlternateText="Blue" PostBackValue="B"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,266,418,623,425,875,300" AccessKey="R" AlternateText="Red" PostBackValue="R"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" Coordinates="468,230,470,21,673,45,875,300" AccessKey="Y" AlternateText="Yellow" PostBackValue="Y"/>
<asp:PolygonHotSpot HotSpotMode="PostBack" NavigateUrl="~/Default.aspx"
Coordinates="468,230,221,406,244,412,265,417" AccessKey="V" AlternateText="Violet"
PostBackValue="V"/>
10.In case the user clicks on any other spot than the area defined by us on the pie-chart. Then user should recieve a message saying "Others". to achieve this we need to create a rectangle hotspot defining the entire area of the image as follows :-
<asp:RectangleHotSpot Top="933" Left="0" right="933" Bottom="0" AccessKey="W"
HotSpotMode="PostBack" NavigateUrl="~/Default.aspx" PostBackValue="W" />12. Let us add code for imagemap on click event in the default.aspx.cs. In this code we are trapping the postback value and setting the text in the label.
protected void ImageMap1_Click1(object sender, ImageMapEventArgs e)
{
switch (e.PostBackValue)
{
case "G":
imageColor.Text = "Green";
break;
case "B":
imageColor.Text = "Blue";
break;
case "Y":
imageColor.Text = "Yellow";
break;
case "V":
imageColor.Text = "Violet";
break;
case "C":
imageColor.Text = "Circle";
break;
case "W":
imageColor.Text = "Others";
break;
case "R":
imageColor.Text = "Red";
break;
}
}13. Let us build this project and execute it in IE.
14. For each of the hot spot we had defined an Access Keys. Access Key allows us to access that part of the imagemap directly by using that key with "ALT". So let us try to access Green HotSppt by using ALT + "G". The Green HotSpot should be highlighted. You can access others by using appropriate access keys with "ALT".
15. Move your mouse over the pie chart and click right in the center. The form should post back and value in the label should be "Circle".
16. Then click on any of the colors in the pie (towards the outer edge i.e. out of the circle area) you should see the selected color in the label after postback.
17. Click on white area of the image (outside the pie - colors). The form should post back and display "Others" in the label.
| You must Sign In to use this message board. | |||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads.
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 8 Sep 2006 Editor: |
Copyright 2006 by Namratha Shah Everything else Copyright © CodeProject, 1999-2010 Web11 | Advertise on the Code Project |