Sharepoint 2010 EventReceiver для добавления SPFolder

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

Теперь меня просят установить значение по умолчанию формы "Добавить новый" для владельца родительской папки. Я попробовал этот код ниже, но событие запускается после сохранения новой папки. Может ли кто-нибудь, пожалуйста, помогите мне? Как я могу установить это значение по умолчанию перед открытием формы?

 public override void ItemAdding(SPItemEventProperties properties)
   {
       SPSecurity.RunWithElevatedPrivileges(delegate()
       {
           try
           {
               this.EventFiringEnabled = false;
               base.ItemAdding(properties);
               if (properties.List.RootFolder.Name == "Documents")
               {
                   SPWeb web = properties.List.ParentWeb;
                   SPList List = properties.List;
                   SPField fld = List.Fields["Folder Owner"];
                   SPUser usr = web.CurrentUser;
                   SPFieldUserValue curUser = new SPFieldUserValue();
                   curUser.LookupId = usr.ID;
                   SPFolder parentFolder = web.GetFolder(properties.AfterUrl.Substring(0,properties.AfterUrl.LastIndexOf("/")));
                   if (parentFolder.Item["Folder Owner"] == null)
                   {
                       fld.DefaultValue = curUser.ToString();
                   }
                   else
                   {
                       fld.DefaultValue = parentFolder.Item["Folder Owner"].ToString();
                   }
                   fld.Update();
                   List.Update();
               }
           }
           catch (Exception)
           {

           }

           finally
           {
               this.EventFiringEnabled = true;
           }

       });
   }

0 ответов

Другие вопросы по тегам