2017-06-06 1 views
2

J'ai plusieurs champs de lien général, qui sont utilisés comme liens internes, donc un élément Sitecore.Sitecore 8 moyen facile d'obtenir l'article dans le lien interne?

-je besoin que « cible » Articles dans mon code, et j'ai le sentiment que je fais dans une horrible façon complexe:

LinkField lf = myItem.Fields["My Link"]; 
if (lf != null) 
{ 
    if (lf.Value != null) 
    { 
     ID targetID; 
     if (ID.TryParse(lf.Value, out targetID)) 
     { 
      Item targetItem = Sitecore.Context.Database.GetItem(targetID); 
      { 
       if (targetItem != null) 
       { 
        // go on with code 
       } 
      } 
     } 
    } 
} 

Est-ce que quelqu'un sait d'une façon plus facile d'obtenir cet objectif article ?

Cordialement

Répondre

2

Vous pouvez utiliser TargetItem propriété du LinkField sans code personnalisé:

Item targetItem; 

LinkField linkField = myItem.Fields["My Link"]; 
if (linkField != null && linkField.IsInternal) 
{ 
    targetItem = linkField.TargetItem; 
} 
+0

Merci Marek, c'est facile :) – Bgl86

+0

@ Bgl86 heureux d'avoir pu aider :) –

+0

Salut Marek. Je viens de le tester, ça fonctionne maintenant. TargetItem est nul. Seule la propriété Value a l'élément Guid. J'utilise un DropTree comme champ – Bgl86