protected internal override void Render (HtmlTextWriter writer)
{
base.Render (writer);
if (spots != null && spots.Count > 0) {
#if NET_4_0
bool enabled = Enabled;
#endif
writer.AddAttribute (HtmlTextWriterAttribute.Id, "ImageMap" + ClientID);
writer.AddAttribute (HtmlTextWriterAttribute.Name, "ImageMap" + ClientID);
writer.RenderBeginTag (HtmlTextWriterTag.Map);
for (int n=0; n<spots.Count; n++) {
HotSpot spot = spots [n];
writer.AddAttribute (HtmlTextWriterAttribute.Shape, spot.MarkupName);
writer.AddAttribute (HtmlTextWriterAttribute.Coords, spot.GetCoordinates ());
writer.AddAttribute (HtmlTextWriterAttribute.Title, spot.AlternateText);
writer.AddAttribute (HtmlTextWriterAttribute.Alt, spot.AlternateText);
if (spot.AccessKey.Length > 0)
writer.AddAttribute (HtmlTextWriterAttribute.Accesskey, spot.AccessKey);
if (spot.TabIndex != 0)
writer.AddAttribute (HtmlTextWriterAttribute.Tabindex, spot.TabIndex.ToString ());
HotSpotMode mode = spot.HotSpotMode != HotSpotMode.NotSet ? spot.HotSpotMode : HotSpotMode;
switch (mode) {
case HotSpotMode.Inactive:
writer.AddAttribute ("nohref", "true", false);
break;
case HotSpotMode.Navigate:
string target = spot.Target.Length > 0 ? spot.Target : Target;
if (!String.IsNullOrEmpty (target))
writer.AddAttribute (HtmlTextWriterAttribute.Target, target);
#if NET_4_0
if (enabled) {
#endif
string navUrl = ResolveClientUrl (spot.NavigateUrl);
writer.AddAttribute (HtmlTextWriterAttribute.Href, navUrl);
#if NET_4_0
}
#endif
break;
case HotSpotMode.PostBack:
writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackClientHyperlink (this, n.ToString(), true));
break;
}
writer.RenderBeginTag (HtmlTextWriterTag.Area);
writer.RenderEndTag ();
}
writer.RenderEndTag ();
}
}
}