【问题标题】:Item Updating list item event receiver on Person or Group field (Multi-User field)个人或组字段(多用户字段)上的项目更新列表项事件接收器
【发布时间】:2016-08-13 03:12:06
【问题描述】:

我的要求是从共享点列表项(个人或组字段)中获取所有用户,并将[读取]权限分配给不同的文档库。由于它有多个用户,在列表项更新时,是否可以比较人员或组字段的前后属性并添加/删除新添加/删除的用户的权限?

目前在项目更新中,我正在删除所有现有用户权限并将它们添加回项目更新。我什至不知道 person 或 group 字段是否已被修改。

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-2013 event-receiver eventreceiver


    【解决方案1】:

    您可以测试您的列是否在ItemUpdating 事件期间发生了变化。在SPItemEventProperties 中,您可以找到名为AfterProperties 的属性。 在处理ItemUpdating 时,您可以使用BeforeProperties 或只使用properties.ListItem,它们都存储原始值。

    因此,如果您想测试列内是否有任何变化,您可以使用以下代码:

    if (properties.ListItem["customColumn"] != properties.AfterProperties["customColumn"])
    {
    }
    

    但由于您有多值用户字段,因此这不会起作用,因为这些集合返回通用对象,您必须将其转换为可比较的对象(例如使用ToString() 方法)。

    尝试以下方法:

     if(properties.ListItem["column"]?.ToString() != properties.AfterProperties["column"]?.ToString()) 
     {
     }
    

    如果有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2010-11-18
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      相关资源
      最近更新 更多