SPChangeQuery.View-Eigenschaft
Ruft ab einen Boolean -Wert, der angibt, ob Änderungen an der SPView -Objekte in der Abfrage enthalten sind.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public Property View As Boolean
Get
Set
'Usage
Dim instance As SPChangeQuery
Dim value As Boolean
value = instance.View
instance.View = value
public bool View { get; set; }
Eigenschaftswert
Typ: System.Boolean
true Änderungen auf SPView Objekte sind; andernfalls false. Der Standardwert ist false.
Beispiele
Im folgende Beispiel ist eine Konsolenanwendung, die alle Änderungen an der der Listenansichten in einer Websitesammlung abruft. Die Anwendung prüft jede Änderung und versucht zu ermitteln, welche Ansicht in der Liste geändert wurde, die Ergebnisse an der Konsole zu drucken.
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