SPSiteDataQuery.Lists 属性
获取或设置指定的列表要包含在查询中的内部 XML。
命名空间: Microsoft.SharePoint
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
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; }
属性值
类型:System.String
一个 XML 字符串,包含指定列表类型整数 ID 或指定的列表 Id 的 Guid。
备注
在字符串中的顶级元素必须Lists。
列表属性
受支持的可选属性, Lists标记如下所示:
ServerTemplate -将查询限制到指定的服务器模板的列表。默认情况下,此属性未设置并因此查询并不仅限于基于特定模板的列表。
示例: <Lists ServerTemplate="104" />
BaseType -将查询限制到指定的基类型的列表。默认情况下,查询将视为列表的 BaseType 0 (泛型列表)。
示例: <Lists BaseType="1" />
下表列出的属性的可能值。
值
说明
0
泛型列表
1
文档库
3
论坛
4
投票或调查
5
IssuesList
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>
示例
下面的示例是一个基于联系人列表模板的所有列表中检索数据的控制台应用程序。
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();
}
}
}