SiteMapDataSource 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一个数据源控件,Web 服务器控件和其他控件可将其用于绑定到分层站点地图数据。
public ref class SiteMapDataSource : System::Web::UI::HierarchicalDataSourceControl, System::ComponentModel::IListSource, System::Web::UI::IDataSource
[System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.SiteMapDataSource))]
public class SiteMapDataSource : System.Web.UI.HierarchicalDataSourceControl, System.ComponentModel.IListSource, System.Web.UI.IDataSource
[<System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.SiteMapDataSource))>]
type SiteMapDataSource = class
inherit HierarchicalDataSourceControl
interface IDataSource
interface IListSource
Public Class SiteMapDataSource
Inherits HierarchicalDataSourceControl
Implements IDataSource, IListSource
- 继承
- 属性
- 实现
示例
下面的代码示例演示如何使用 SiteMapDataSource 控件以声明方式将控件绑定到TreeView站点地图。 从根节点级别开始检索站点地图数据。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:SiteMapDataSource
id="SiteMapDataSource1"
runat="server" />
<asp:TreeView
id="TreeView1"
runat="server"
DataSourceID="SiteMapDataSource1">
</asp:TreeView>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:SiteMapDataSource
id="SiteMapDataSource1"
runat="server" />
<asp:TreeView
id="TreeView1"
runat="server"
DataSourceID="SiteMapDataSource1">
</asp:TreeView>
</form>
</body>
</html>
注解
本主题内容:
介绍
控件 SiteMapDataSource 是站点地图数据的数据源,该数据源由为站点配置的站点地图提供程序存储。 使 SiteMapDataSource 不是专门网站导航控件的 Web 服务器控件(如 TreeView、 Menu和 DropDownList 控件)能够绑定到分层站点地图数据。 可以使用这些 Web 服务器控件将站点地图显示为目录或主动导航网站。 或者,可以使用 SiteMapPath 控件,该控件专门设计为网站导航控件,因此不需要控件 SiteMapDataSource 的实例。
指定起始节点
绑定到 SiteMapDataSource 站点地图数据,并根据站点地图层次结构中的指定起始节点显示其视图。 默认情况下,它是层次结构的根节点,但它也可以是层次结构中的任何节点。 起始节点由多个 SiteMapDataSource 属性的值标识,如下所示:
起始节点 | 属性值 |
---|---|
层次结构的根节点 (默认设置) 。 |
StartFromCurrentNode 为 false 。未设置 StartingNodeUrl。 |
表示当前查看的页面的节点。 |
StartFromCurrentNode 为 true 。未设置 StartingNodeUrl。 |
层次结构的特定节点。 |
StartFromCurrentNode 为 false 。已 StartingNodeUrl 设置 。 |
如果 属性 StartingNodeOffset 设置为 0 以外的值,则它会影响起始节点以及控件公开 SiteMapDataSource 的站点地图数据层次结构。 的负整数值或正整数值 StartingNodeOffset 标识站点地图层次结构从起始节点向上或向下的级别数,这些节点由 StartFromCurrentNode 和 StartingNodeUrl 属性标识,以偏移数据源控件公开的子树的起始节点。
如果 属性 StartingNodeOffset 设置为负数 -n,则数据源控件公开的子树的起始节点是标识的起始节点上方的上级节点 n 个分层级别。 如果值 n 大于分层树中的上级级别数,则子树的起始节点是站点地图层次结构的根节点。
如果 属性 StartingNodeOffset 设置为正数 +n,则公开的子树的起始节点是标识的起始节点下方的子节点 n 级。 由于层次结构中可能存在多个子节点分支,因此 如果可能,会 SiteMapDataSource 尝试直接在标识的起始节点和表示当前请求页的节点之间的路径上解析子节点。 如果表示当前请求页的节点不在标识的起始节点的子树中,则会忽略 属性的值 StartingNodeOffset 。 如果表示当前请求页的节点低于标识的起始节点的 n 个级别,则当前请求的页面节点将用作起始节点。
检索站点地图数据
从 对象(例如 XmlSiteMapProvider)检索SiteMapProvider站点地图数据,该对象是 ASP.NET 的默认站点地图提供程序。 可以指定为站点配置的任何提供程序,以便向 SiteMapDataSource 提供站点地图数据,并通过访问 SiteMap.Providers 集合获取可用提供程序的列表。
与所有数据源控件一 SiteMapDataSource 样,的每个实例都与单个帮助程序对象(称为数据源视图)相关联。 SiteMapDataSourceView根据数据源的属性,是站点地图数据上的视图,通过调用 GetHierarchicalView 方法检索。 SiteMapNodeCollection维护SiteMapDataSourceView控件绑定到的对象。
默认情况下,起始节点是层次结构的根节点,但你可以将起始节点设置为任何节点。 起点可以是相对于站点地图中当前位置或绝对位置的节点。 可以通过设置 StartingNodeUrl 属性来指定起始节点。
SiteMapDataSource专用于导航数据,不支持常见的数据源操作,例如排序、筛选、分页、缓存或数据记录操作(如更新、插入或删除)。
声明性语法
<asp:SiteMapDataSource
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
ShowStartingNode="True|False"
SiteMapProvider="string"
SkinID="string"
StartFromCurrentNode="True|False"
StartingNodeOffset="integer"
StartingNodeUrl="uri"
Visible="True|False"
/>
构造函数
SiteMapDataSource() |
初始化 SiteMapDataSource 类的新实例。 |
属性
Adapter |
获取控件的浏览器特定适配器。 (继承自 Control) |
AppRelativeTemplateSourceDirectory |
获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
BindingContainer |
获取包含该控件的数据绑定的控件。 (继承自 Control) |
ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
ClientID |
获取由 ASP.NET 生成的服务器控件标识符。 (继承自 HierarchicalDataSourceControl) |
ClientIDMode |
此属性不用于数据源控件。 (继承自 HierarchicalDataSourceControl) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
ContainsListCollection |
获取一个值,该值指示数据源控件是否包含数据源视图对象的集合。 |
Context |
为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 (继承自 Control) |
Controls |
获取 ControlCollection 对象,该对象表示 UI 层次结构中的指定服务器控件的子控件。 (继承自 HierarchicalDataSourceControl) |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
EnableTheming |
获取一个值,该值指示此控件是否支持主题。 (继承自 HierarchicalDataSourceControl) |
EnableViewState |
获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。 (继承自 Control) |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 (继承自 Control) |
ID |
获取或设置分配给服务器控件的编程标识符。 (继承自 Control) |
IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
IsChildControlStateCleared |
获取一个值,该值指示该控件中包含的控件是否具有控件状态。 (继承自 Control) |
IsTrackingViewState |
获取一个值,用于指示服务器控件是否会将更改保存到其视图状态中。 (继承自 Control) |
IsViewStateEnabled |
获取一个值,该值指示是否为该控件启用了视图状态。 (继承自 Control) |
LoadViewStateByID |
获取一个值,该值指示控件是否通过 ID 而不是索引参与加载其视图状态。 (继承自 Control) |
NamingContainer |
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
Page |
获取对包含服务器控件的 Page 实例的引用。 (继承自 Control) |
Parent |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
Provider |
获取或设置与数据源控件关联的 SiteMapProvider 对象。 |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
ShowStartingNode |
获取或设置一个值,该值指示是否检索并显示起始节点。 |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
SiteMapProvider |
获取或设置数据源绑定到的站点地图提供程序的名称。 |
SkinID |
获取或设置应用于 HierarchicalDataSourceControl 控件的外观。 (继承自 HierarchicalDataSourceControl) |
StartFromCurrentNode |
获取或设置一个值,该值指示站点地图节点树是否使用表示当前页的节点进行检索。 |
StartingNodeOffset |
获取或设置一个从起始节点开始计算的正整数或负整数偏移量,该起始节点确定了由数据源控件公开的根层次结构。 |
StartingNodeUrl |
获取或设置站点地图中的一个节点,数据源然后使用该节点作为从分层的站点地图中检索节点的参照点。 |
TemplateControl |
获取或设置对包含该控件的模板的引用。 (继承自 Control) |
TemplateSourceDirectory |
获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。 (继承自 Control) |
UniqueID |
获取服务器控件的唯一的、以分层形式限定的标识符。 (继承自 Control) |
ValidateRequestMode |
获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 (继承自 Control) |
ViewState |
获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 (继承自 Control) |
ViewStateIgnoresCase |
获取一个值,该值指示 StateBag 对象是否不区分大小写。 (继承自 Control) |
ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
Visible |
获取或设置一个值,该值指示是否以可视化方式显示控件。 (继承自 HierarchicalDataSourceControl) |
方法
事件
DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
Disposed |
当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control) |
Init |
当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control) |
Load |
当服务器控件加载到 Page 对象中时发生。 (继承自 Control) |
PreRender |
在加载 Control 对象之后、呈现之前发生。 (继承自 Control) |
Unload |
当服务器控件从内存中卸载时发生。 (继承自 Control) |
显式接口实现
扩展方法
FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
FindFieldTemplate(Control, String) |
返回指定控件的命名容器中指定列的字段模板。 |
FindMetaTable(Control) |
返回包含数据控件的元表对象。 |
GetDefaultValues(IDataSource) |
为指定数据源获取默认值的集合。 |
GetMetaTable(IDataSource) |
获取指定数据源对象中表的元数据。 |
TryGetMetaTable(IDataSource, MetaTable) |
确定表元数据是否可用。 |