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. Можете ли вы точно указать, где вы получаете исключение?