Свойство SPChangeQuery.View
Получает или задает значение Boolean , указывающее, включены ли в запросе изменений объектов SPView .
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Property View As Boolean
Get
Set
'Применение
Dim instance As SPChangeQuery
Dim value As Boolean
value = instance.View
instance.View = value
public bool View { get; set; }
Значение свойства
Тип: System.Boolean
true для включения изменений объектов SPView ; в противном случае — false. Значение по умолчанию — false.
Примеры
Следующий пример является консольным приложением, которое извлекает все изменения представления списков в семействе узлов. Приложение проверяет каждое изменение и пытается определить, какой вид, в котором был изменен список, печать результатов на консоль.
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.RootWeb)
{
SPChangeQuery query = new SPChangeQuery(false, true);
// object type
query.View = true;
// Get the list collection
SPListCollection lists = webSite.Lists;
int total = 0;
// Loop until we reach the end of the log.
while (true)
{
SPChangeCollection changes = webSite.GetChanges(query);
total += changes.Count;
// Print info about each change to the console.
foreach (SPChange change in changes)
{
SPChangeView changedView = (SPChangeView)change;
string listTitle = "Unknown";
string viewTitle = "Unknown";
// Try to get the title of the list.
try
{
SPList list = lists.GetList(changedView.ListId, false);
listTitle = list.Title;
// Try to get the title of the view.
try
{
SPView view = list.Views[changedView.Id];
viewTitle = view.Title;
}
catch (SPException) // View not found
{
viewTitle = "No longer exists";
}
}
catch (SPException) // List not found
{
listTitle = "No longer exists";
}
Console.WriteLine("\nDate: {0}", change.Time.ToString());
Console.WriteLine("Change: {0} ", change.ChangeType.ToString());
Console.WriteLine("List: {0}", listTitle);
Console.WriteLine("View: {0}", viewTitle);
}
// Break out of loop if we have the last batch.
if (changes.Count < query.FetchLimit)
break;
// Otherwise, go get another batch.
query.ChangeTokenStart = changes.LastChangeToken;
}
Console.WriteLine("\nTotal of {0} changes", total);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.RootWeb
Dim query As New SPChangeQuery(False, True)
' object type
query.View = True
' Get the list collection.
Dim lists As SPListCollection = webSite.Lists
Dim total As Integer = 0
' Loop until we reach the end of the log.
While True
Dim changes As SPChangeCollection = webSite.GetChanges(query)
total += changes.Count
' Print info about each change to the console.
For Each change As SPChange In changes
Dim changedView As SPChangeView = CType(change, SPChangeView)
Dim listTitle As String = "Unknown"
Dim viewTitle As String = "Unknown"
' Try to get the title of the list.
Try
Dim list As SPList = lists.GetList(changedView.ListId, False)
listTitle = list.Title
' Try to get the title of the view.
Try
Dim view As SPView = list.Views(changedView.Id)
viewTitle = view.Title
Catch ex As SPException ' View not found
viewTitle = "No longer exists"
End Try
Catch ex As SPException 'List not found
listTitle = "No longer exists"
End Try
Console.WriteLine(ControlChars.Lf + "Date: {0}", change.Time.ToString())
Console.WriteLine("Change: {0} ", change.ChangeType.ToString())
Console.WriteLine("List: {0}", listTitle)
Console.WriteLine("View: {0}", viewTitle)
Next change
' Break out of loop if we have the last batch.
If changes.Count < query.FetchLimit Then
Exit While
End If
' Otherwise, go get another batch.
query.ChangeTokenStart = changes.LastChangeToken
End While
Console.WriteLine(ControlChars.Lf + "Total of {0} changes", total)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module