Проблема при сохранении нового элемента в настраиваемом списке SharePoint 2007 с помощью элемента управления пользовательского интерфейса Silverlight 4 - PullRequest
0 голосов
/ 08 февраля 2011

Я надеюсь, что кто-то сможет мне помочь.Я работаю над диспетчером контактов, созданным с использованием настраиваемого списка SharePoint 2007 с пользовательским интерфейсом Silverlight 4, встроенным в веб-часть редактора контента.

В настоящее время я могу извлечь данные из списка и отобразить их в видеСетка данных в пользовательском интерфейсе и все работает хорошо.

Теперь я пытаюсь добавить возможность добавлять новые элементы в список, используя следующий код, но элементы не сохраняются.

I 'Мы удаленно отладили следующий код с помощью параметра «Отладка -> Присоединить к процессу», и все кажется выполненным без ошибок, но не сохраняет элемент в SharePoint.

Для упрощения и получения работающей функции вставкиЯ изменил все файлы SharePoint на однострочный текст, за исключением заметок (многострочный), и ни одно из файлов не требуется.

Для сайта sharepoint не требуется проверка подлинности Windows, но, похоже, она работает правильно, как и явозможность отображать его, а также добавлять новые элементы вручную, используя стандартный SharФормы ePoint.

Наконец, я добавил xml для элемента Batch внизу, который я скопировал как вывод при отладке.

Пожалуйста, дайте мне знать, если есть какая-либо дополнительная информация, которая может бытьпропал без вести.

Заранее благодарим за любую помощь, которую вы могли бы оказать.

Чарльз

public string sharepoint_soap_namespace = "http://schemas.microsoft.com/sharepoint/soap/";
public string sharepoint_rowset_namespace = "#RowsetSchema";
public string service_lists_url = "http://myDomain/_vti_bin/lists.asmx";
public string listName = "MyContacts";

 public void TestCreateContact()
{
  Uri serviceUri = new Uri(service_lists_url);
  BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
  binding.MaxReceivedMessageSize = 2147483647; // This has to be the same as in the ServiceReferences.ClientConfig file.
  EndpointAddress endpoint = new EndpointAddress(serviceUri);
  ListsSoapClient testCreateClient = new ListsSoapClient(binding, endpoint);

XElement batch = new XElement("batch",
  new XElement("Method",
  new XAttribute("ID", "1"),
  new XAttribute("Cmd", "New"),
  CreateFieldElement("ows_ID", "New"),
  CreateFieldElement("ows_Title", "John"),
  CreateFieldElement("ows_SupportFor","USA"),
  CreateFieldElement("ows_LastName","Doe")
));


testCreateClient.UpdateListItemsCompleted +=
      new EventHandler<UpdateListItemsCompletedEventArgs>(createSoapClient_UpdateListItemsCompletedEventArgs);

testCreateClient.UpdateListItemsAsync(listName, batch);
testCreateClient.CloseAsync();

}


private XElement CreateFieldElement(string fieldName, string fieldValue)
{
  XElement element = new XElement("Field",
  new XAttribute("Name", fieldName),
  fieldValue);
  return element;
}

1 Ответ

0 голосов
/ 09 февраля 2011

Просто быстрое обновление, чтобы все знали, что я смог ответить на свой вопрос. Похоже, что в пакете XElement я использовал неправильные имена полей.

CreateFieldElement ( "ows_SupportFor", "США"),

Я использовал «ows_SupportFor» вместо «SupportFor» без префикса «ows_».

Ура, Charles

...