0

我的要求是從sharepoint列表項(人員或組字段)獲取所有用戶並將[讀取]權限分配給不同的文檔庫。因爲它有多個用戶,因此在列表項更新時,是否可以比較人員或組字段的前後屬性以及新添加/刪除的用戶的添加/刪除權限?項目正在更新人員或組字段中的列表項目事件接收器(多用戶字段)

當前正在進行項目更新,我將刪除所有現有用戶權限並將其添加回項目更新。我甚至不知道人員或團隊字段是否已被修改。

回答

0

您可以測試您的列在ItemUpdating事件中是否發生了變化。在SPItemEventProperties內您可以找到屬性AfterProperties。 在ItemUpdating上工作時,您可以使用BeforeProperties或僅使用properties.ListItem,它們都存儲原始值。

所以,如果你想測試如果說有什麼您的專欄裏改變了你可以使用下面的代碼:

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

不過既然你有多值用戶字段這不會wokr因爲這些集合返回通用對象,您必須將其轉換爲可比較的對象(例如,使用ToString()方法)。

試試以下幾點:

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

讓我知道是否有幫助。