事件前后SPListItem的值如何?

时间:2012-04-24 09:08:30

标签: c# sharepoint events

我有一个事件接收器,当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
                          });

2 个答案:

答案 0 :(得分: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
    }

答案 1 :(得分:2)

如果列表是文档库,则可以使用BeforeProperties。如果没有,从事件之前获取值的唯一方法是使用versions(如果列表中包含它们)或使用ItemUpdating事件。

有关不同事件和列表类型的事件接收器属性内容的表格,请参阅Working with BeforeProperties and AfterProperties on SPItemEventReceiver