フォルダー所有者をカスタム フィールドに保持するために、カスタム フォルダー コンテンツ タイプを追加したドキュメント ライブラリがあります。
ここで、「新規追加」フォームのデフォルト値を親フォルダーの所有者に設定するよう求められます。以下のコードを試してみましたが、新しいフォルダーを保存した後にイベントが発生します。誰でも私を助けてくれますか?フォームを開く前にこのデフォルト値を設定するにはどうすればよいですか?
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;
}
});
}