通过使用Sitecore webservice,我创建了一个新的页面项目如下。
var scClient = new VisualSitecoreServiceSoapClient();
// another code
var xmlNode = scClient.AddFromTemplate(parentId, pagetemplateId,itemName,database,credentials)
我不能使用数据库项,只能使用Web服务。
从xmlNode我得到新创建的GUID / Id。如何仅从Web服务编辑新创建的项目的字段?
答案 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)