0

我正在使用 Sitecore Web 服务在 Sitecore 中插入字段值。如果我的字段是单行文本,那么它可以很好地插入。但是当它是 Multilist 类型时,没有插入。这是我添加项目的代码:

 private static void GetCountries(DataRow reader, XmlElement myNode)
    {
        myNode.RemoveChild(myNode.LastChild);
        foreach (DataRow wireRow in reader.GetChildRows("Countries"))
        {
            var newNode = myNode.OwnerDocument.CreateElement("Value");
            newNode.InnerText = wireRow["COUNTRY_NAME"].ToString();
            myNode.AppendChild(newNode);
        }
    }

在此调用之后,该字段的 myNode 如下所示:

<field itemid="{2C16342E-7662-432B-9895-5EDB15914D7F}" language="en" version="1" 
fieldid="{1F5956D6-EABE-4F74-A248-B25B7EE90350}" name="Categories" title=""
type="Multilist" source="/sitecore/content/data/Countries" section="Content" 
tooltip=""><value>US</value><value>China</value><value>India</value></field>

在此之后,我调用save

 var okay = sitecoreService.Save(getItem.OuterXml, database, myCred);

但我没有看到 Multilist 字段中的国家/地区。这里发生了什么?

4

1 回答 1

3

多列表字段采用管道分隔的 GUID 字符串,因此要将国家/地区添加到此字段中,您需要查找每个Country项目的 Sitecore ID,然后用管道连接它们。

<value>{US-GUID}|{China-GUID}|{India-GUID}</value>

不推荐使用 Sitecore Web 服务来执行这些操作。您使用 Web 服务而不是常规 API 是否有特定原因(这会使这些调用更容易)?

于 2012-10-02T19:03:07.567 回答