SPSiteDataQuery.Lists property
取得或設定會指定要包含在查詢中的內部 XML。
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
Public Property Lists As String
Get
Set
'用途
Dim instance As SPSiteDataQuery
Dim value As String
value = instance.Lists
instance.Lists = value
public string Lists { get; set; }
Property value
Type: System.String
含有會指定清單類型、 整數識別碼或 Guid,以指定的清單識別碼 XML 字串。
備註
在字串中的最上層元素必須Lists。
清單屬性
支援的Lists標記的選用屬性包括:
ServerTemplate -限制的查詢,至指定的伺服器範本的清單。根據預設,未設定此屬性與因此查詢不是限制在特定範本為基礎的清單。
範例: <Lists ServerTemplate="104" />
BaseType -限制查詢,以指定的基底類型的清單。根據預設,該查詢會考慮清單 BaseType 0 (一般的清單)。
範例: <Lists BaseType="1" />
下表列出可能的屬性值。
值
描述
0
一般清單
1
文件庫
3
討論論壇 (英文)
4
投票或調查
5
問題清單
Hidden -會決定查詢是否包含隱藏的清單。根據預設,該查詢會考慮所有非隱藏的清單。
範例: <Lists Hidden = "TRUE />
MaxListLimit -限制查詢,以指定的清單的總數。如果該查詢會超過此限制,查詢而失敗,並會引發SPException。根據預設,上限為 1000年。設為 0,時被視為的清單數目沒有限制。
範例: <Lists MaxListLimit="500" />
清單的子元素
可能的子元素的Lists標記包括List和WithIndex。
List標記允許加入特定的清單,而不是傳回特定類型的所有清單的查詢。ID屬性會識別每個清單。範例:
<Lists> <List ID="7A9FDBE6-0841-430a-8D9A-53355801B5D5" /> <List ID="3D18F506-FCA1-451e-B645-2D720DC84FD8" /> </Lists>
WithIndex標記為Lists選用子和查詢時,會限制為具有已編製索引的欄位的清單。
注意
使用WithIndex查詢會導致效能降低的網站集合,內含大量的項目。WithIndex提供僅針對回溯相容性,並不建議使用方式。
WithIndex元素有三種必要的屬性: FieldId、 Value,以及Type。Type屬性必須設定為Text。在下列範例中,該查詢會考慮含有項目編製索引之指定的欄位且設為"Complete"的文字值的清單。
<Lists> <WithIndex FieldId="D4819257-6B69-41F1-82C8-A91615BFF500" Type="Text" Value="Complete" /> </Lists>
Examples
下列範例會從連絡人清單範本為依據的所有清單擷取資料的主控台應用程式。
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 all lists created from the contacts template.
query.Lists = "<Lists ServerTemplate='105' />"
' Get the Title (Last Name) and FirstName fields.
query.ViewFields = "<FieldRef Name='Title' />"
query.ViewFields += "<FieldRef Name='FirstName' Nullable='TRUE'/>"
Dim results As DataTable = web.GetSiteData(query)
For Each row As DataRow In results.Rows
Console.WriteLine("{0} {1}", row("FirstName"), row("Title"))
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 all lists created from the contacts template.
query.Lists = "<Lists ServerTemplate=\"105\" />";
// Get the Title (Last Name) and FirstName fields.
query.ViewFields = "<FieldRef Name=\"Title\" />";
query.ViewFields += "<FieldRef Name=\"FirstName\" Nullable=\"TRUE\"/>";
DataTable results = web.GetSiteData(query);
foreach (DataRow row in results.Rows)
Console.WriteLine("{0} {1}", row["FirstName"], row["Title"]);
}
}
Console.ReadLine();
}
}
}