Ich erstelle ein Import-Skript, um meine Artikel in Sitecore mithilfe von Daten aus einer Tabelle zu aktualisieren. Einige der Felder sind Multilisten. Die Daten für in der Tabelle, die in die Multiliste eingegeben werden sollen, könnten beispielsweise "rot, blau, grün" sein. Wie bearbeite ich den Wert des Multilistenfeldes?Wie bearbeite ich das Multilistenfeld eines Sitecore-Elements in C#?
Antwort
Ich nehme an, dass Sie bereits in Sitecore Elemente haben, die als Ihre Farben aufgerufen werden. Sie müssen ihre IDs finden und sie als den Wert Ihres Felds festlegen, das durch |
Zeichen getrennt wird, z. {some-guid}|{another-guid}|{and-one-more-guid}
.
Item redColorItem;
Item blueColorItem;
Item greenColorItem;
Item importedItem;
importedItem["Colors"] = redColorItem.ID + "|" + blueColorItem.ID + "|" + greenColorItem.ID
Sie können verstehen, was gesetzt werden sollte, wenn der Schalter auf "Raw-Werte" im Content Editor in das Feld ein.
Multilist-Feld enthält IDs anderer Elemente mit "|" Separator. Es bedeutet, dass Sie rote, blaue und grüne Elemente als Ihr Wörterbuch erstellen sollten. Und dann wandeln Sie "rot, blau, grün" in {ID des grünen Elements} | {ID des blauen Elements} | {ID des grünen Elements} um.
Ich möchte die vorherigen Antworten erweitern. Es gibt eine API, um mit mehreren Listenfeldern in Sitecore zu arbeiten, Sie sollten es in Betracht ziehen, anstatt eine manuelle Erzeugung von röhrengetrennten Zeichenfolgenwerten. Etwas wie:
using (new EditContext(item))
{
MultilistField mlField = new MultilistField(item.Fields["Multilist"]);
mlField.Add(redColorItem.ID.ToString());
mlField.Add(blueColorItem.ID.ToString());
mlField.Add(greenColorItem.ID.ToString());
}