获取或设置一个值,指定的查询的数据的类型。
命名空间: Microsoft.SharePoint.WebControls
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
Public Property DataSourceMode As SPDataSourceMode
Get
Set
用法
Dim instance As SPDataSource
Dim value As SPDataSourceMode
value = instance.DataSourceMode
instance.DataSourceMode = value
public SPDataSourceMode DataSourceMode { get; set; }
属性值
类型:Microsoft.SharePoint.WebControls.SPDataSourceMode
一个SPDataSourceMode值。默认值是SPDataSourceMode.List。
备注
DataSourceMode属性的值指定的查询的数据的类型。可能值SPDataSourceMode枚举中定义,并包括列表、 ListItem、 CrossList、 ListOfLists 和网站。
示例
DataSourceMode.List
在List模式下,基础数据源是SharePoint Foundation列表。在以下示例中, SPDataSource控件用于从根网站中的任务列表中检索数据。请注意由 ListName 和 WebID 参数标识的列表和网站。控件还可识别 ListID 和 WebURL 的参数名称。有关详细信息,请参阅SelectParameters属性。
在示例中,通过将SPDataSource控件的ID属性的值分配给该绑定的控件的DataSourceID属性的数据源控件链接到的数据绑定GridView控件。
<SharePoint:SPDataSource
ID="SPDataSource1"
runat="server"
DataSourceMode="List"
UseInternalName="true"
SelectCommand="<Query><OrderBy><FieldRef Name='DueDate' Ascending='true' /></OrderBy></Query>">
<SelectParameters>
<asp:Parameter Name="ListName" DefaultValue="Tasks" />
<asp:Parameter Name="WebID" DefaultValue="RootWeb" />
</SelectParameters>
</SharePoint:SPDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="SPDataSource1"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Due Date" DataField="DueDate" />
<asp:BoundField HeaderText="Priority" DataField="Priority" />
<asp:BoundField HeaderText="Title" DataField="Title" />
<asp:BoundField HeaderText="Status" DataField="Status" />
</Columns>
</asp:GridView>
包含此标记的网页呈现时, SPDataSource控件将自动填充请求的列表数据网格。控件返回的每个列表项的数据的一行。
DataSourceMode.ListItem
在ListItem模式下,该控件从单个列表项中检索数据。与参数标识的 Web 网站、 标识的列表中,一个参数和标识的列表项的参数,必须在SelectParameters中发现的目标项。在以下示例中,ListItemID 参数指定的通知列表中的第一项。
<SharePoint:SPDataSource
ID="SPDataSource1"
runat="server"
DataSourceMode="ListItem"
UseInternalName="true" >
<SelectParameters>
<asp:Parameter Name="WebID" DefaultValue="RootWeb" />
<asp:Parameter Name="ListName" DefaultValue="Announcements" />
<asp:Parameter Name="ListItemID" DefaultValue="1" />
</SelectParameters>
</SharePoint:SPDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="SPDataSource1"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Title" DataField="Title" />
<asp:BoundField HeaderText="Expires" DataField="Expires" />
</Columns>
</asp:GridView>
包含此标记的网页呈现时, GridView控件会自动填入一行包含请求的字段值的数据。
DataSourceMode.CrossList
在CrossList模式下,您可以查询在同一网站集中的多个 Web 站点中的多个列表中的项目。该效果是类似于在网站集中使用针对列表SPSiteDataQuery类的实例。
下面的示例查询日历列表 (列出类型 106),询问的约会位置的位置是"您的 office"和日期为今天。查询的结果自动填充数据绑定GridView控件,显示的数据。
备注
在示例中的SelectCommand字符串已经过修改以使其更容易阅读。实际的 ASP.NET 页上的字符串应在单行上。
<SharePoint:SPDataSource ID="SPDataSource1" runat="server"
DataSourceMode="CrossList"
UseInternalName="true"
SelectCommand="<Webs Scope='Recursive'></Webs>
<Lists ServerTemplate='106'></Lists>
<View>
<ViewFields>
<FieldRef Name='EventDate'/>
<FieldRef Name='Title'/>
<FieldRef Name='Location'/
</ViewFields>
<Query>
<Where>
<And>
<Eq>
<FieldRef Name='Location'/>
<Value Type='Text'>Your office</Value>
</Eq>
<Eq>
<FieldRef Name='EventDate'/>
<Value Type='DateTime'><Today/></Value>
</Eq>
</And>
</Where>
</Query>
</View>" >
</SharePoint:SPDataSource>
<asp:GridView ID="GridView1" runat="server"
DataSourceID="SPDataSource1"
AutoGenerateColumns="false" Width="75%" HeaderStyle-HorizontalAlign="Left" >
<Columns>
<asp:BoundField HeaderText="Date" DataField="EventDate" />
<asp:BoundField HeaderText="Title" DataField="Title" />
<asp:BoundField HeaderText="Location" DataField="Location" />
</Columns>
</asp:GridView>
请注意SPDataSource控件的标记有没有SelectParameters组件。所有工作是通过分配给SelectCommand属性的协作应用程序标记语言 (CAML) 片段。此片段包含有些不正常的两个元素: 网站和列表。
Webs 元素
此元素指定查询的范围。"递归"作用域包括当前网站的所有子网站。"网站集"作用域包括在网站集中的所有网站。有关详细信息,请参阅Webs属性。
当您使用 Webs 元素与SPDataSource控件时,标记不能自结束,如 < Web / >。您必须使用单独的开始和结束标记,< Webs >< / Webs >。
Lists 元素
此元素限制到特定列表或特定类型的列表的查询。Lists 元素的属性可以指定 ServerTemplate 或 BaseType。在示例中,Lists 元素为日历列表查询限制通过将 ServerTemplate 属性的值设置为 106。此外,一个或多个列表子元素可以限制查询到由 ID 标识的列表或具有指定的索引的字段的列表。有关详细信息,请参阅Lists属性。
DataSourceMode.ListOfLists
在ListOfLists模式下,该控件检索指定网站中列表的属性。如果未不指定任何网站,则使用当前上下文中的网站。数据源控件返回的每个列表数据的一行。在每行中的字段对应于SPList对象的属性。
在以下示例中, GridView控件的标记将所选的数据字段绑定到网格的列。注释标记通过使用SystemPropertyPrefix字段中的值作为前缀SPList对象属性名称引用的数据字段"__sp"。例如,标记使用名称"__spTitle" Title属性引用。
<SharePoint:SPDataSource
ID="SPDataSource1"
runat="server"
DataSourceMode="ListOfLists" >
<SelectParameters>
<asp:Parameter Name="WebUrl" DefaultValue="/" />
</SelectParameters>
</SharePoint:SPDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="SPDataSource1"
AutoGenerateColumns="false" >
<Columns>
<asp:BoundField HeaderText="List Title" DataField="__spTitle" />
<asp:BoundField HeaderText="Description" DataField="__spDescription" />
<asp:BoundField HeaderText="URL" DataField="__spDefaultViewUrl" />
</Columns>
</asp:GridView>
DataSourceMode.Webs
在Webs模式下,该控件检索当前网站的子网站的属性。数据源控件返回的每个子网站的数据的一行。字段中数据的每一行对应于SPWeb对象的属性。
在以下示例中, GridView控件的标记将所选的数据字段绑定到网格的列。请注意标记引用的数据字段,通过使用带有"__sp"前缀SPWeb对象属性名称。例如,标记使用名称"__spUrl" Url属性引用。
<SharePoint:SPDataSource
ID="SPDataSource1"
runat="server"
DataSourceMode="Webs"
IncludeHidden="true">
<SelectParameters>
<asp:Parameter Name="WebId" DefaultValue="RootWeb" />
</SelectParameters>
</SharePoint:SPDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="SPDataSource1"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Site Title" DataField="__spTitle" />
<asp:BoundField HeaderText="URL" DataField="__spUrl" />
<asp:BoundField HeaderText="ID" DataField="__spID" />
<asp:BoundField HeaderText="Web Template" DataField="__spWebTemplate" />
<asp:BoundField HeaderText="Web Template Id" DataField="__spWebTemplateId" />
</Columns>
</asp:GridView>
SPDataSource控件将自动填充数据网格。您可以通过调用GetSubwebsForCurrentUser()方法,然后枚举该方法返回的SPWeb对象的集合实现类似的结果捕获每个对象的属性值。