Partilhar via


SPChangeQuery.View Property

Gets or sets a Boolean value that specifies whether changes to SPView objects are included in the query.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online

Syntax

'Declaration
<ClientCallableAttribute> _
Public Property View As Boolean
    Get
    Set
'Usage
Dim instance As SPChangeQuery
Dim value As Boolean

value = instance.View

instance.View = value
[ClientCallableAttribute]
public bool View { get; set; }

Property Value

Type: System.Boolean
true to include changes to SPView objects; otherwise, false. The default is false.

Examples

The following example is a console application that retrieves all changes to list views in a site collection. The application examines each change and tries to determine which view in which list was changed, printing the results to the console.

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

See Also

Reference

SPChangeQuery Class

SPChangeQuery Members

Microsoft.SharePoint Namespace

SPChangeView