在SharePoint中,我们经常会需要获取那些改变的项目,其实api为我们提供了SPChange对象,下面,我们通过列表简单介绍下这一对象。

  1、创建一个测试列表,名字叫做“SPChangeItems”,并插入测试数据,如下图:

Sharepoint 关于"SPChange"简介

  2、删除ID为3的数据,并且修改ID为2的数据,为我们的后面测试做准备,如下图:

Sharepoint 关于"SPChange"简介

  3、编写我们的代码,本例在控制台中,有需要可以封装WebPart或者application page,如下图:

Sharepoint 关于"SPChange"简介

  4、执行结果,如下图:

  我们可以看到我们,对话框中显示的添加、更新和删除数据的记录,这就是SPChange的应用,当然,这个不仅仅针对列表,还可以操作文档库、页面等其他,具体可以参考文后附的msdn链接;

Sharepoint 关于"SPChange"简介

  5、附源代码

Sharepoint 关于"SPChange"简介
 1 SPList list = web.GetList("Lists/SPChangeItems");   2    3 SPChangeQuery query = new SPChangeQuery(true, true);   4 SPChangeCollection changecoll = list.GetChanges(query);   5    6 foreach (SPChange change in changecoll)   7 {   8     if (change is SPChangeItem)   9     {  10         SPChangeItem changeitem = (SPChangeItem)change;  11   12         if (changeitem.ChangeType == SPChangeType.Delete)  13         {  14             Console.WriteLine(string.Format("ListName:{0},ItemId:{1}", list.Title, changeitem.Id.ToString()));  15             Console.WriteLine(string.Format("ChangeType:{0}", changeitem.ChangeType.ToString()));  16         }  17         else  18         {  19             try  20             {  21                 SPListItem item = list.GetItemById(changeitem.Id);  22                 Console.WriteLine(string.Format("ListName:{0},ItemId:{1},Title:{2}", list.Title, changeitem.Id, item.Title));  23                 Console.WriteLine(string.Format("ChangeType:{0}", changeitem.ChangeType.ToString()));  24                 Console.WriteLine();  25             }  26             catch { }  27         }  28     }  29 }
Sharepoint 关于"SPChange"简介

总  结

  通过SPChange我们可以查询站点、视图、用户、列表、文件夹、用户组等等的修改,可以很方便的了解站点的变化。然后封装成WebPart或者Web Application Pages来进行展示,都是很方便的。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注