2014-09-26 6 views
1

С помощью веб-службы Sitecore я создал новый элемент страницы, как показано ниже.Как изменить значения полей вновь созданного элемента/страницы из sitecore Webservice

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

Я не могу использовать элементы базы данных, а именно веб-службу.

От xmlNode Я получаю только что созданный идентификатор GUID/Id. Как редактировать поля только что созданного элемента только из webservice?

+0

Вы можете взглянуть на метод InsertXML здесь - HTTP : //sdn.sitecore.net/upload/sitecore6/65/sitecore_web_service_sc65-a4.pdf – nsgocev

ответ

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); 

EDIT:

В ответ на ваш комментарий: Нет, вы не можете использовать имя поля вместо поля идентификатора. Тем не менее вы можете использовать GetItemFields метод подвергается в VisualSitecoreServiceSoapClient, чтобы перечислить все поля элемента, а затем определить, что идентификатор поля с заданным именем:

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

Спасибо Марас, я могу изменить поле, используя ваш код. Есть ли способ изменить имя поля вместо идентификатора поля? –

+0

Нельзя использовать имя поля. См. Обновленный ответ с объяснением. –

+0

Смысл Мараса, я сделаю так, как вы предложили. В очередной раз благодарим за помощь. –