0

私の要件は、共有ポイントリストアイテム(個人またはグループフィールド)からすべてのユーザーを取得し、異なるドキュメントライブラリに[読み取り]アクセス許可を割り当てることです。複数のユーザーがあるため、リストアイテムの更新時に人またはグループフィールドの前後のプロパティを比較したり、新しく追加または削除されたユーザーのアクセス許可を追加または削除できますか?アイテムリストフィールドイベントレシーバーを個人またはグループフィールドで更新する(マルチユーザーフィールド)

現在、アイテムのアップデートでは、既存のユーザー権限をすべて削除してアイテムの更新時に追加し直しています。人やグループのフィールドが変更されたかどうかは分からない。

答えて

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()) 
{ 
} 

はそれが助けなら、私に教えてください。

関連する問題