HyperLink
Definierad i Dynamix.Content5.Controls
Kontrollen HyperLink används för att rita ut Dynamix-baserade eller andra länkar.
protected override void CreateChildControls()
{
var link = new Dynamix.Content5.Controls.HyperLink();
Controls.Add( link );
link.Href = "http://www.mysite.se/Startpage.htm";
link.Text = "Till startsidan";
}
Resulterar i markupen:
<a href="http://www.mysite.se/Startpage.htm">Till startsidan</a>
Metoden InitFromSource initierar länkkontrollen från det inskickade objektet om det stöder interfacet ILinkInfo, ILinkInfoProvider eller IUrl.
protected override void CreateChildControls()
{
var link = new Dynamix.Content5.Controls.HyperLink();
Controls.Add( link );
var item = Dynamix.Object.GetAll<Site>().First().StartItem;
link.InitFromSource( item };
}
I detta fall används startsidan för lösningens första webbplats (Site) som källa. Det är en NavigationItem och eftersom denna klass implementerar IUrl kan den användas som källa. Resultatet blir:
Om underkontroller läggs till kommer dessa att ritas ut i stället för egenskapen Text:
var img = new System.Web.UI.WebControls.Image();
...
link.Controls.Add( img );
Resultatet blir:
<a href="...">
<img ... />
</a>
Normalt genererar HyperLink-kontrollen a-taggen endast om Href-attributet är satt. Detta är smidigt eftersom man då inte behöver kontrollera med kod vilken kontrollstruktur man ska ha - exempelvis kan man använda koden från exemplet med Image-kontrollen ovan oavsett om det finns en länk för bilden. För att generera en a-tag även då href är tom kan egenskapen HideWrapperTagWhenNoHref sättas till false.
Om man inte vill rendera innehållet eller texten i länken om den inte pekar någonstans kan man sätta egenskapen HideContentsWhenNoHref:
var link = new HyperLink();
link.InitFromSource( product.ReadMoreLink );
link.Text = "Läs mer";
link.HideContentsWhenNoHref = true;
I detta fall kommer länken inte att rendera något alls om redaktören inte har valt någon länk för produkten.
Övriga egenskaper:
DataSource: Kan sättas till värden som implementerar ILinkInfo, ILinkInfoProvider eller IUrl. Vid DataBind körs InitFromDataSource med detta objekt
Target: Motsvarar a-taggens target-attribut.
NoFollow: Anger om länken ska följas av sökmotorer. Om värdet sätts till sant genereras attributet rel="nofollow" och sökmotorer kommer därmed inte att följa länken.
HideContentsWhenNoHref: Anger om länkens innehåll (text eller underkontroller) ska döljas om Href inte är satt.
HideWrapperTagWhenNoHref: Anger om själva a-taggen ska döljas om Href inte är satt