HyperLink

Definierad i Dynamix.Content5.Controls

Kontrollen HyperLink används för att rita ut Dynamix-baserade eller andra länkar.

  1. protected override void CreateChildControls()
  2. {
  3. var link = new Dynamix.Content5.Controls.HyperLink();
  4. Controls.Add( link );
  5. link.Href = "http://www.mysite.se/Startpage.htm";
  6. link.Text = "Till startsidan";
  7. }

Resulterar i markupen:

  1. <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.

  1. protected override void CreateChildControls()
  2. {
  3. var link = new Dynamix.Content5.Controls.HyperLink();
  4. Controls.Add( link );
  5. var item = Dynamix.Object.GetAll<Site>().First().StartItem;
  6. link.InitFromSource( item };
  7. }

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:

  1. <a href="/">Hem</a>

Om underkontroller läggs till kommer dessa att ritas ut i stället för egenskapen Text:

  1. var img = new System.Web.UI.WebControls.Image();
  2. ...
  3. link.Controls.Add( img );

Resultatet blir:

  1. <a href="...">
  2. <img ... />
  3. </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:

  1. var link = new HyperLink();
  2. link.InitFromSource( product.ReadMoreLink );
  3. link.Text = "Läs mer";
  4. 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