Добавление ListItem в список в Sharepoint 2007 - PullRequest
3 голосов
/ 01 октября 2010

Я пытаюсь добавить элемент в список в Sharepoint. В данный момент я пытаюсь добавить товар через CAML

Я могу прочитать список и запросить список, но я не смог добавить его в список. Все примеры, которые я видел, обновляют список, я ожидаю, что процесс добавления элемента должен быть достаточно схожим.

вот как я сейчас тестирую. SPLists - это веб-ссылка на http: ///_vti_bin/lists.asmx

.
    void Test(){
        var listService = new SPLists.Lists();

        string strBatch ="<Method ID='1' Cmd='New'><Field Name='Title'>Test</Field></Method>";

        XmlDocument xmlDoc = new System.Xml.XmlDocument();

        System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");

        elBatch.SetAttribute("OnError", "Continue");
        elBatch.SetAttribute("ListVersion", "1");

        elBatch.InnerXml = strBatch;
        XmlNode ndReturn = listService.UpdateListItems("TestList",elBatch);

        Console.Write(ndReturn.OuterXml); 
        Console.WriteLine("");

}

кто-то уже задавал подобный / тот же вопрос здесь на SO, но не ответил

Редактировать
Это ошибка, которую я получаю

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/"><br> <Result ID="1,New"><br> <ErrorCode>0x81020026</ErrorCode><br> <ErrorText>The list that is referenced here no longer exists.</ErrorText><br> </Result><br> </Results>

Когда я настраивал веб-ссылку, он указывал на правильный сайт и даже просматривал список в sharepoint, чтобы убедиться, что он там есть.

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Похоже, вам, вероятно, нужно небольшое дополнение к вашему strBatch ( используйте эту статью в качестве ссылки ): <Field Name='ID'>New</Field>

Это означает, что у вас будет что-то вроде:

string strBatch ="<Method ID='1' Cmd='New'><Field Name='ID'>New</Field><Field Name='Title'>Test</Field></Method>";

Кроме того, если у вас есть какие-либо обязательные поля в списке, вам, вероятно, придется их указать.

0 голосов
/ 04 октября 2010

Это то, что я нашел, что решило мою проблему.

Когда я настраивал веб-ссылку в visual studio, я указывал на http://sharepointSite/subweb1/subweb2/_vit_bin/lists.asmx в качестве ссылки.

Однако, когда я вернулся и проверил сегодня, он указывал на http://sharepointSite/_vit_bin/lists.asmx., вручную изменяя его на http://sharepointSite/subweb1/subweb2/_vit_bin/lists.asmx в файле app.config, что имело все значение.

@ Kit +1 Я также добавил в ваше предложение. С вашим предложением и тем, что я узнал о веб-ссылке, это сработало впервые.

Я закончил тем, что создал суб-сеть только с 1 полем (Заголовок), чтобы она заработала.

...