如何从sitecore Webservice修改新创建的项目/页面的字段值

时间:2014-09-26 16:18:31

标签: web-services sitecore xmlnode

通过使用Sitecore webservice,我创建了一个新的页面项目如下。

var scClient = new VisualSitecoreServiceSoapClient();
// another code
var xmlNode = scClient.AddFromTemplate(parentId, pagetemplateId,itemName,database,credentials)

我不能使用数据库项,只能使用Web服务。

从xmlNode我得到新创建的GUID / Id。如何仅从Web服务编辑新创建的项目的字段?

1 个答案:

答案 0 :(得分:1)

您可以使用Save()这样的方法:

string itemId = // id from AddFromTemplate() xmlNode 
string fieldId = "{some-id-of-the-field}"; // id of the field

XDocument fieldXml = new XDocument(
    new XElement("sitecore",
        new XElement("field",
            new XAttribute("itemid", itemId),
            new XAttribute("language", "en"),
            new XAttribute("version", 1),
            new XAttribute("fieldid", fieldId),
            new XElement("value", "new value of the field")
        )
    )
);

XElement fieldResponse = scClient.Save(fieldXml, "web", credentials);

修改

回复您的评论:不,您不能使用字段名称而不是字段ID。您仍然可以使用GetItemFields中公开的VisualSitecoreServiceSoapClient方法列出项目的所有字段,然后确定具有给定名称的字段的ID:

public XmlDocument GetItemFields(string id, string language, string version, bool allFields, string databaseName, Credentials credentials)