Exemplo n.º 1
0
 /// <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);
             }
         });
     }
 }
Exemplo n.º 2
0
        /// <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;
        }