0

SPList の SPListItem が更新されたときに発生するイベント レシーバーがあります。ItemUpdated() イベントを使用しています。

どのフィールドが編集されたかを比較できるように、イベント前の値を取得したいと考えています。

それ、どうやったら出来るの?

if (properties.ListTitle == "Lista")
            {
                if (properties.AfterProperties["Start Time"].ToString() != properties.ListItem["Start Time"].ToString())
                {
                    string s = "hej";
                }
            }

            try
            {
                // ID for the site from the properties object
                Guid siteId = properties.SiteId;
                // ID for the list from the properties object
                Guid listId = properties.ListId;
                // ID for the list item from the properties object
                int listItemId = properties.ListItemId;

                SPSecurity.RunWithElevatedPrivileges(delegate()
                          {
                           // Code stuff
                          });
4

2 に答える 2

2
     if (properties.ListTitle == "ListName")
    {
         //AfterProperties gives new value and ListItem gives the previously stored
         if(properties.AfterProperties["ColumnName"].ToString()!=properties.ListItem["ColumnName"].ToString())
         //Your code Here
    }
于 2012-04-24T09:17:32.843 に答える
2

リストがドキュメント ライブラリの場合は、BeforePropertiesを使用できます。そうでない場合、イベントの前から値を取得する唯一の方法は、バージョン(リストにバージョンがある場合) を使用するか、代わりにItemUpdatingイベントを使用することです。

さまざまなイベントおよびリスト タイプのイベント レシーバー プロパティの内容をまとめた表については、「SPItemEventReceiver での BeforeProperties および AfterProperties の操作」を参照してください。

于 2012-04-24T13:45:35.270 に答える