FieldRenderer - Holen Sie sich einen spezifischen Feldnamen aus verschiedenen Vorlagenabschnitten

StackOverflow https://stackoverflow.com/questions/2417362

  •  19-09-2019
  •  | 
  •  

Frage

Gibt es eine Möglichkeit, einen bestimmten Feldnamen aus einer Vorlage mit mehreren Abschnitten zu einer FeldRenderer -Steuerung zu erhalten?

F.ex. Ich habe eine Vorlage mit den Abschnitten "Daten" und "Data2", beide haben ein Einzel-Text-Feld namens "Text". Gibt es eine Möglichkeit, meinen FieldRenderer das Feld "Text" in Abschnitt "Data2" zu erhalten

Es wäre schön, wenn einer der folgenden Vorschläge funktionieren würde:

<sc:FieldRenderer ID="test" runat="server" FieldName="Text" Section="Data2" />

<sc:FieldRenderer ID="test" runat="server" FieldName="Data2/Text" />

Br Larre

War es hilfreich?

Lösung

Obwohl es absichtlich so entwickelt wurde (wir möchten nicht, dass Sitecore-Entwickler Zeit mit Abschnittsnamen verschwenden), ist es meiner Meinung nach sinnvoll, so etwas einzubeziehen. Lassen Sie mich dies als Feature -Anfrage auflisten.

Wenn Sie dieses Richtige kennenlernen möchten, sollten Sie zunächst verstehen, wie der FieldRenderer funktioniert. Es startet eine Pipeline namens "Renderfield". Im zweiten Schritt wird das FieldValue gelesen:

Ersetzen Sie diese durch Ihre eigene kundenspezifische Klasse durch so etwas:

public void Process(RenderFieldArgs args)
{
    Assert.ArgumentNotNull(args, "args");
    if(args.RawParameters.Contains("Section"))
    {
        //Parse args.RawParameters
        //Extract Section data
        //Take args.Item.Template
        //Resolve section
        //Resolve fieldvalue
        //Set this field value as args.Results.FirstPart
    }
    if (!string.IsNullOrEmpty(args.FieldValue))
    {
        args.Result.FirstPart = args.FieldValue;
    }
    else
    {
        args.Result.FirstPart = args.Item[args.FieldName];
    }
}

Etwas in der Linie von:

args.Result.FirstPart = args.Item[args.Item.Template.GetSection("sectionName").GetField(args.FieldName).ID];

Aber jetzt mit Fehlerprüfungen :)

Andere Tipps

Laut offizielle Dokumentation von Sitecore müssen mir Feldnamen über Abschnitte hinweg eindeutig eindeutig sind.

Dies wurde auch besprochen hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top