SPException при обновлении SPItem

0 Sergey Z. [2014-09-03 08:03:00]

Я пишу код для SharePoint 2010 с VisualStudio 2013 Premium. Я создал событие buttonclick в веб-части, которая должна обновить существующий элемент в списке... но в данный момент я нажимаю эту кнопку, я получаю, что spexception не обрабатывается пользователем код..

Вот фрагмент кода, который я создал:

void myButton_Click(object sender, RoutedEventArgs e)
{
    SPList list = SPContext.Current.Web.GetList["MyList"];
    SPItem item = list.GetItemById(myId);

    item["MyField"] = newValue;
    item.Update;
}

В то же время я попытался не обновлять, но создать новый элемент с тем же значением поля и его исполнением...

Любые идеи, какая проблема с этим?

c# exception sharepoint updating


3 ответа


2 ChernikovP [2014-09-03 08:33:00]

Я думаю, вы получаете сообщение об ошибке, потому что SPItem является абстрактным классом и, получая определенный элемент из списка, определенно должен использовать класс SPListItem. И, возможно, это опечатка, но Update - это метод, поэтому ваш код должен выглядеть так:

SPListItem item = list.GetItemById(myId); 
item["MyField"] = newValue;
item.Update();

0 Olga Golubeva [2015-11-23 13:19:00]

Попробуйте создать новый сайт и веб-сайт из текущего контекста и установите для AllowUnsafeUpdates значение true, например:

using (SPSite site = new SPSite(SPContext.Current.Web.Url))                   
{
    using (SPWeb web = site.OpenWeb())
    {
        site.AllowUnsafeUpdates = true;
        web.AllowUnsafeUpdates = true;

        SPList list = web.GetList["MyList"];
        SPListItem item = list.GetItemById(myId);

        item["MyField"] = newValue;
        item.Update();

        web.AllowUnsafeUpdates = false;
        site.AllowUnsafeUpdates = false;
    }
}

0 Ali Murtaza [2014-09-03 08:32:00]

Проблема в том, что вы не указали правильное имя списка или имя поля.

Убедитесь, что вы не обновляете поле ID. Можете ли вы точно указать, где вы получаете исключение?