Freigeben über


SPSiteDataQuery.ViewFields-Eigenschaft

Ruft ab oder legt den inneren XML-Code, der die verwendeten Ansichtsfelder in der Abfrage angibt.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Property ViewFields As String
    Get
    Set
'Usage
Dim instance As SPSiteDataQuery
Dim value As String

value = instance.ViewFields

instance.ViewFields = value
public string ViewFields { get; set; }

Eigenschaftswert

Typ: System.String
Eine Zeichenfolge, die ein Fragment in Collaborative Application Markup Language enthält, der die Anzeigefelder angibt. Diese Zeichenfolge entspricht den inneren XML-Code des ViewFields -Elements in Collaborative Application Markup Language (CAML).

Hinweise

Jedes Feld wird durch ein Tag FieldRef dargestellt. Verwenden Sie das Name oder ID -Attribut, um das Feld zu identifizieren.

Das Tag FieldRef hat ein optionales Type -Attribut, das verwendet werden kann, um den Datentyp des Felds angeben. Wenn das Attribut festgelegt ist, gelten nur für Listen, die das Feld ist des angegebenen Typs deklarieren von der Abfrage. Beispiel:

<ViewFields>
  <FieldRef Name="Title" Type="Text" />
  <FieldRef Name="PercentComplete" Type="Number" />
</ViewFields>

Enthält eine Liste in der Abfrage enthalten keine eines der Felder in das Tag ViewFields angegebenen Standardmäßig werden keine Elemente aus der Liste in den Ergebnissen angezeigt. Um einen leeren Wert für ein Feld auf Elemente in Listen zurückzugeben, die dieses Feld nicht enthalten, legen Sie das Attribut Nullable auf TRUE auf dieses Tag FieldRef . (Für Felder Lookup und User , müssen Sie auch das Attribut Type festgelegt.) Beispiel:

<ViewFields>
  <FieldRef Name="AssignedTo" Type="User" Nullable="TRUE" />
</ViewFields>

Listeneigenschaften wie Title können in der Abfrage mit dem Tag ListProperty enthalten sein. Das Name -Attribut des Tags ListProperty identifiziert die bestimmte-Eigenschaft und kann einen der folgenden Werte enthalten:

  • Title – der Titel der Liste, die das Element enthält.

  • ListId – die GUID der Liste, die das Element enthält.

  • DraftVersionVisibility – gibt an, ob Nebenversionen von Dokumenten für Leser, Autoren und genehmigende Personen sichtbar sind.

    Wert

    Description

    0

    Nebenversionen sind für Leser, Autoren und genehmigende Personen sichtbar.

    1

    Nebenversionen sind für Autoren und genehmigende Personen sichtbar.

    2

    Nebenversionen sind nur für genehmigende Personen sichtbar.

Site-Standardeigenschaften können mithilfe des ProjectProperty -Tags enthalten sein. Das Name -Attribut des Tags ProjectProperty identifiziert die bestimmte-Eigenschaft und kann einen der folgenden Werte enthalten:

  • Title – der Titel der Website, die das Element enthält.

  • WebId – die GUID der Website, die das Element enthält.

Für jedes Element gibt im folgenden Beispiel wird der Titel des Elements, das enthaltende Listentitel und der enthaltenden Website Titel zurück. Beispiel:

<ViewFields>
  <FieldRef Name="Title" />
  <ProjectProperty Name="Title" />
  <ListProperty Name="Title" />
</ViewFields>

Beispiele

Das folgende Beispiel ist eine Konsolenanwendung, die alle Tasks fragt Listen in einer Websitesammlung und füllt das Resultset mit Daten aus drei Anzeigefelder. Nach dem Abrufen von Daten, druckt die Anwendung einen Bericht in der Konsole angezeigt.

Imports System
Imports System.Data
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using site As SPSite = New SPSite("https://localhost")
         Using web As SPWeb = site.OpenWeb()

            Dim query As SPSiteDataQuery = New SPSiteDataQuery()

            ' Query all Web sites in this site collection.
            query.Webs = "<Webs Scope='SiteCollection'>"

            ' Ask for lists created from the Tasks template.
            query.Lists = "<Lists ServerTemplate='107'/>"

            ' Specify the view fields.
            query.ViewFields = "<FieldRef Name='Title' Type='Text'/>"
            query.ViewFields += "<FieldRef Name='AssignedTo' Type='User' Nullable='TRUE' />"
            query.ViewFields += "<FieldRef Name='PercentComplete' Type='Number' Nullable='TRUE' />"

            ' Run the query.
            Dim results As DataTable = web.GetSiteData(query)

            ' Print the results.
            Console.WriteLine("{0, -30} {1, -30} {2}", "Task", "Assigned to", "% Complete")

            Dim row As DataRow
            For Each row In results.Rows

               ' Get the task name.
               Dim task As String = row("Title").ToString()

               ' Parse out the user's login name.
               Dim loginName As String = String.Empty
               Dim str() As String = row("AssignedTo").ToString().Split("#"c)
               If (str.Length > 1) Then
                  loginName = str(1)
               End If

               ' Get the percent complete.
               Dim percent As Decimal
               Dim hasValue As Boolean = _
                   Decimal.TryParse(CType(row("PercentComplete"), String), percent)
               If Not hasValue Then
                  percent = 0
               End If

               Console.WriteLine("{0, -30} {1, -30} {2, 10:P0}", task, loginName, percent)
            Next

         End Using
      End Using
      Console.ReadLine()
   End Sub
End Module
using System;
using System.Data;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("https://localhost"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               SPSiteDataQuery query = new SPSiteDataQuery();

               // Query all Web sites in this site collection.
               query.Webs = "<Webs Scope='SiteCollection'>";

               // Ask for lists created from the Tasks template.
               query.Lists = "<Lists ServerTemplate='107'/>";

               // Specify the view fields.
               query.ViewFields = "<FieldRef Name='Title' Type='Text'/>";
               query.ViewFields += "<FieldRef Name='AssignedTo' Type='User' Nullable='TRUE' />";
               query.ViewFields += "<FieldRef Name='PercentComplete' Type='Number' Nullable='TRUE' />";

               // Run the query.
               DataTable results = web.GetSiteData(query);

               // Print the results.
               Console.WriteLine("{0, -30} {1, -30} {2}", "Task", "Assigned to", "% Complete");
               foreach (DataRow row in results.Rows)
               {
                  // Get the task name.
                  string task = row["Title"].ToString();

                  // Parse out the user's login name.
                  string loginName = String.Empty;
                  string[] str = row["AssignedTo"].ToString().Split('#');
                  if (str.Length > 1) loginName = str[1];

                  // Get the percent complete.
                  decimal percent;
                  bool hasValue = decimal.TryParse((string)row["PercentComplete"], out percent);
                  if (!hasValue) percent = 0;

                  Console.WriteLine("{0, -30} {1, -30} {2, 10:P0}", task, loginName, percent);
               }
            }
         }
         Console.ReadLine();
      }
   }
}

Siehe auch

Referenz

SPSiteDataQuery Klasse

SPSiteDataQuery-Member

Microsoft.SharePoint-Namespace