Sharepoint 2013 關於"SPChange"簡介

霖雨發表於2014-06-23

  在SharePoint中,我們經常會需要獲取那些改變的專案,其實api為我們提供了SPChange物件,下面,我們通過列表簡單介紹下這一物件。

  1、建立一個測試列表,名字叫做“SPChangeItems”,並插入測試資料,如下圖:

clip_image002

  2、刪除ID為3的資料,並且修改ID為2的資料,為我們的後面測試做準備,如下圖:

clip_image004

  3、編寫我們的程式碼,本例在控制檯中,有需要可以封裝WebPart或者application page,如下圖:

clip_image006

  4、執行結果,如下圖:

  我們可以看到我們,對話方塊中顯示的新增、更新和刪除資料的記錄,這就是SPChange的應用,當然,這個不僅僅針對列表,還可以操作文件庫、頁面等其他,具體可以參考文後附的msdn連結;

clip_image008

  5、附原始碼

 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 }

總  結

  通過SPChange我們可以查詢站點、檢視、使用者、列表、資料夾、使用者組等等的修改,可以很方便的瞭解站點的變化。然後封裝成WebPart或者Web Application Pages來進行展示,都是很方便的。

參考連結

  http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spchange(v=office.15).aspx

相關文章