【问题标题】:How to modify the field values of newly created Item/Page from sitecore Webservice如何从 sitecore Webservice 修改新创建的 Item/Page 的字段值
【发布时间】:2014-09-26 16:18:31
【问题描述】:

通过使用 Sitecore 网络服务,我创建了一个新的页面项目,如下所示。

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

我不能使用数据库项目,只能使用网络服务。

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

【问题讨论】:

标签: web-services sitecore xmlnode


【解决方案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。您仍然可以使用VisualSitecoreServiceSoapClient 中公开的GetItemFields 方法列出项目的所有字段,然后确定具有给定名称的字段的 id 是什么:

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

【讨论】:

  • 感谢 Maras,我可以使用您的代码修改该字段。有没有办法可以使用字段名称而不是字段 ID 进行修改?
  • 您不能使用字段名称。查看更新的答案和解释
  • 讲道理马拉斯,我会按照你的建议去做。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多