/// <summary> /// Повторное чтение элемента списка /// </summary> /// <param name="listItem">Элемент спискак</param> /// <param name="mode">Режим</param> protected void Reload(SPListItem listItem, ItemRecordReloadMode mode) { if (mode == ItemRecordReloadMode.None) { } else if (mode == ItemRecordReloadMode.Reload) { Reload(listItem.Web, listItem.ParentList.ID, listItem.ID); } else { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite spSite = new SPSite(listItem.Web.Site.ID)) { Reload(spSite.RootWeb, listItem.ParentList.ID, listItem.ID); } }); } }
/// <summary> /// Сохранить данные /// </summary> /// <param name="listItem">Элемент списка</param> /// <param name="saveMode">Режим сохранения</param> /// <param name="reloadMode">Нужно ли перечитать данные списка после сохранения</param> /// <returns></returns> public bool Save(SPListItem listItem, ItemRecordSaveMode saveMode, ItemRecordReloadMode reloadMode) { bool result = false; try { result = SaveData(listItem); if (!result) { return false; } if (saveMode == ItemRecordSaveMode.Simple) { listItem.Update(); } else { listItem.SystemUpdate(); } IsNew = false; result = true; Reload(listItem, reloadMode); } catch { if (IsNew) { listItem.Delete(); } throw; } return result; }