我使用Sitecore网络服务在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>
在此之后我打电话给保存:
var okay = sitecoreService.Save(getItem.OuterXml, database, myCred);
但是我没有看到Multilist字段中的国家/地区。这是怎么回事?
答案 0 :(得分:3)
多列表字段采用管道分隔的GUID字符串,因此要将国家/地区添加到此字段中,您需要查找每个Country
项目的Sitecore ID,然后将其与管道连接。
<value>{US-GUID}|{China-GUID}|{India-GUID}</value>
建议不要使用Sitecore网络服务来执行这些操作。是否有特定原因使用Web服务而不是常规API(这会使这些调用更容易)?