Sharepoint 2010 EventReceiver for SPFolder添加

时间:2012-10-02 14:02:10

标签: sharepoint-2010 eventreceiver

我有一个文档库,我们在其中添加了自定义文件夹内容类型,以便将文件夹所有者保留在自定义字段中。

现在我被要求将“添加新”表单的默认值设置为父文件夹所有者。我在下面尝试过此代码,但保存新文件夹后事件将触发。任何人都可以帮助我吗?如何在打开表单之前设置此默认值?

 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 个答案:

没有答案