...

View Full Version : Dynamically load Image Map coordinates



BryanM
03-12-2007, 11:07 AM
I have an asp.net site that uses a dropdown listbox to select 1 of 6 different images to be displayed at one time. Changing the image is working fine. But I need to define and use a different set of coordinates for each image. One image could have as few as 5 regions, while another could have up to 100. The coordinates will be hardcoded but I can't seem to figure out how to load different sets of "PolygonHotspot" based on which image is displayed. I thought it was going to be as easy as assigning an ID to 100 different hotspots, then turning them off or on and defining the coordinates based on the image name. That seemed like the perfect solution .. until I found out that the PolygonHotspot doesn't have an ID property.

Any help would be GREATLY appreciated! Please email me at bry at herp dot com

Thank you in advance,

Bryan Mohr

Just for reference, here is the code that I Was hoping would work:

ASP.NET Code


<asp:ImageMap
runat="Server"
ID="imImage"
Height="422px"
Width="280px"
BackColor="#FFFF80"
AlternateText="Spinal Cord Side"
HotSpotMode="PostBack"
OnClick="ShowCombo"
ImageUrl="~/Images/Spinal_Cord_Side.JPG">

<asp:PolygonHotSpot
ID="HS001"
HotSpotMode="PostBack"
AlternateText="Top Vertebrae"
Coordinates="118,16,127,11,135,4,142,4,154,11,155,16,154,17,143,15,139,15,132,22,118,17,118,17"
PostBackValue="Top Vertebrae" />

<asp:PolygonHotSpot
ID="HS002"
HotSpotMode="PostBack"
AlternateText="Second Vertebrae"
Coordinates="118,32,131,24,131,22,139,15,154,17,156,32,141,25,138,25,137,27,137,29,121,38,119,36"
PostBackValue="Second Vertebrae" />

<asp:PolygonHotSpot
ID="HS003"
HotSpotMode="InActive"
AlternateText="Not used here"
Coordinates="161,6,163,20,216,22,208,4,169,5"
PostBackValue="Unused" />
</asp:ImageMap>


VB Code


Protected Sub cbImageCombo_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbImageCombo.TextChanged
Dim strImageName As String = cbImageCombo.Text
Dim strImageText As String = strImageName

strImageName = "~/Images/" & strImageName.Replace(" ", "_") & ".JPG"
imImage.ImageUrl = strImageName
imImage.AlternateText = strImageText

' First Make all Hotspots inactive
HS001.HotspotMode = "Inactive"
HS002.HotspotMode = "Inactive"
HS003.HotspotMode = "Inactive"

' Next activate the defined hotspots for the currently selected image
If (strImageText = "Spinal Cord Side") Then
HS001.HotSpotMode = "PostBack"
HS001.AlternateText = "Top Vertebrae"
HS001.Coordinates = "118,16,127,11,135,4,142,4,154,11,155,16,154,17,143,15,139,15,132,22,118,17,118,17"
HS001.PostBackValue = "Top Vertebrae"

HS002.HotSpotMode = "PostBack"
HS002.AlternateText = "Second Vertebrae"
HS002.Coordinates = "118,32,131,24,131,22,139,15,154,17,156,32,141,25,138,25,137,27,137,29,121,38,119,36"
HS002.PostBackValue = "Second Vertebrae"
End If

If (strImageText = "Skeleton Front") Then
HS001.HotSpotMode = "PostBack"
HS001.AlternateText = "Skull"
HS001.Coordinates = "120,14,126,7,134,3,138,3,146,6,151,11,154,17,154,27,152,39,148,41,148,49,142,53,132,53,125,49,125,43 ,124,39,121,35,121,32,119,28,119,16"
HS001.PostBackValue = "Skull"
End If

If (strImageText = "Muscular Man Back") Then
HS001.HotSpotMode = "PostBack"
HS001.AlternateText = "Lateral Deltoid - Right"
HS001.Coordinates = "172,82,180,80,187,79,189,80,194,84,198,89,200,95,201,99,202,107,201,115,192,106,185,98,184,90,178,88 ,174,85"
HS001.PostBackValue = "Lateral Deltoid - Right"

HS002.HotSpotMode = "PostBack"
HS002.AlternateText = "Posterior Deltoid - Left"
HS002.Coordinates = "100,97,101,114,86,128,81,126,90,107"
HS002.PostBackValue = "Posterior Deltoid - Left"

HS002.HotSpotMode = "PostBack"
HS002.AlternateText = "Levator Scapulae - Left"
HS002.Coordinates = "109,75,127,64,132,57,130,73,112,76"
HS002.PostBackValue = "Levator Scapulae - Left"
End If
End Sub



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum