Sitecores: Wie gleiche Feldnamen in verschiedenen Abschnitten zugreifen
-
16-09-2019 - |
Frage
I Datenvorlage DT1 in Sitecore, die das Feld „Header“ im Abschnitt „Daten“ hat. Ich habe Datenvorlage dt2 auch, dass das Feld „Header“ im Abschnitt „Portal“ hat Schließlich habe ich Datenvorlage DT3, die sowohl DT1 und DT2 als Basis-Vorlagen verwendet.
Wie kann ich, in xslt, finden Sie den Inhalt des Portals / header?
In meinem Code, wenn ich schreibe
/ callprat
Lösung
Sie können es nicht.
Und ehrlich gesagt weiß ich nicht von jedem unterstützten so, wie es von .NET entweder zu tun.
Dies, gerade aus der Data Definition Referenz , Abschnitt 2.1 0,1
2.1.1 Datenvorlage Felder
Ein Datenvorlage Feld definiert den Benutzer Schnittstellensteuerung und andere Eigenschaften dass der Einfluss, wie das Feld verhält im Content Editor und Seiteneditor. Weitere Informationen zu Feldern finden Kapitel 4, das Schablonenfeld.
Hinweis: Wenn Feldnamen definieren, sicherzustellen, dass sie einzigartig sind auch zwischen Feldabschnitte. Sowohl XSLT und .NET Codenamen Verwendung Feld allein, ohne Verweis auf die Abschnitte zu extrahieren, Inhalt von Feldern.
Andere Tipps
Ich fand einen Weg, um diesen in .NET auf einem Projekt, das ich gerade arbeite. Eine der Vorlagen, die der Client gesetzt hatte musste „Eimer“, die verschiedene Feldabschnitte hatten, aber die Felder waren in der gleichen zwischen Eimern. Früher habe ich LINQ to Gruppe die Felder von Sektionsnamen, dann mit jeder Gruppierung von Feldern behandelt.
var sections = currentItem.Fields.GroupBy(field => field.Section);
foreach (var section in sections)
{
if (section.Key.StartsWith("Bucket"))
{
buckets.Add(new Bucket(section)); //I made a bucket item,
//and passed each IGrouping<Field> to it
}
}
item.Fields.Where(field => field.Section.ToUpper() == "META DATA" &&
field.DisplayName.ToUpper() == "TITLE").First().Value;
Sie können Felder verweisen durch ihre IDs:
C #:
string value = item["{00000000-0000-0000-000000000000}"]
oder
Field field = item.Fields["{00000000-0000-0000-000000000000}"]
Ich habe nicht versucht, aber ich denke, es wird auch in XSLT arbeiten:
<sc:text field="{00000000-0000-0000-000000000000}" />