0

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

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

4

1 回答 1

0

您可以测试您的专栏是否在活动期间ItemUpdating发生了变化。在里面SPItemEventProperties你可以找到名为AfterProperties. 在处理时,ItemUpdating您可以使用BeforeProperties或仅使用properties.ListItem它们来存储原始值。

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

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

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

尝试以下操作:

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

让我知道这是否有帮助。

于 2016-08-12T18:57:51.720 回答