SiteMapDataSource 类

定义

提供一个数据源控件,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使不是站点导航控件(如 TreeViewMenuDropDownList 控件)的 Web 服务器控件能够绑定到分层站点地图数据。 可以使用这些 Web 服务器控件将站点地图显示为目录或主动导航网站。 或者,可以使用 SiteMapPath 控件,该控件专门设计为网站导航控件,因此不需要控件 SiteMapDataSource 的实例。

指定起始节点

SiteMapDataSource绑定到站点地图数据,并根据站点地图层次结构中的指定起始节点显示其视图。 默认情况下,它是层次结构的根节点,但也可以是层次结构中的任何节点。 起始节点由多个 SiteMapDataSource 属性的值标识,如下所示:

起始节点 属性值
层次结构的根节点 (默认设置) 。 StartFromCurrentNodefalse

未设置 StartingNodeUrl
表示当前查看的页面的节点。 StartFromCurrentNodetrue

未设置 StartingNodeUrl
层次结构的特定节点。 StartFromCurrentNodefalse

设置 StartingNodeUrl

如果 属性 StartingNodeOffset 设置为 0 以外的值,则它会影响起始节点,并影响控件 SiteMapDataSource 公开的站点地图数据层次结构。 的 StartingNodeOffset 负整数值或正整数值标识站点地图层次结构从起始节点向上或向下的级别数,这些节点由 StartFromCurrentNodeStartingNodeUrl 属性标识,以偏移数据源控件公开的子树的起始节点。

如果属性 StartingNodeOffset 设置为负数 -n,则数据源控件公开的子树的起始节点是标识的起始节点上方的上级节点 n 个层次结构。 如果值 n 大于分层树中的上级级别数,则子树的起始节点是站点地图层次结构的根节点。

如果属性 StartingNodeOffset 设置为正数 +n,则公开的子树的起始节点是标识的起始节点下方 n 级子节点。 由于子节点的多个分支可能存在于层次结构中,因此 如果可能,会 SiteMapDataSource 尝试直接在标识的起始节点和表示当前请求页的节点之间的路径上解析子节点。 如果表示当前请求页的节点不在标识的起始节点的子树中,则忽略 属性的值 StartingNodeOffset 。 如果表示当前请求页的节点低于标识的起始节点的 n 个级别,则当前请求的页节点将用作起始节点。

检索站点地图数据

从 对象(如 XmlSiteMapProvider)检索SiteMapProvider站点地图数据,该对象是 ASP.NET 的默认站点地图提供程序。 您可以指定为站点配置的任何提供程序,以便向 提供站点地图数据 SiteMapDataSource ,并且可以通过访问 SiteMap.Providers 集合来获取可用提供程序的列表。

与所有数据源控件一 SiteMapDataSource 样, 的每个实例都与单个帮助程序对象(称为数据源视图)相关联。 SiteMapDataSourceView根据数据源的属性, 是站点地图数据上的视图,通过调用 GetHierarchicalView 方法检索。 维护SiteMapDataSourceViewSiteMapNodeCollection控件绑定到的对象。

默认情况下,起始节点是层次结构的根节点,但你可以将起始节点设置为任何节点。 起点可以是相对于站点地图中当前位置或绝对位置的节点。 可以通过设置 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

获取或设置包含该控件的 PageUserControl 对象的应用程序相对虚拟目录。

(继承自 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

获取包含当前服务器控件的 PageUserControl 的虚拟目录。

(继承自 Control)
UniqueID

获取服务器控件的唯一的、以分层形式限定的标识符。

(继承自 Control)
ValidateRequestMode

获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。

(继承自 Control)
ViewState

获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。

(继承自 Control)
ViewStateIgnoresCase

获取一个值,该值指示 StateBag 对象是否不区分大小写。

(继承自 Control)
ViewStateMode

获取或设置此控件的视图状态模式。

(继承自 Control)
Visible

获取或设置一个值,该值指示是否以可视化方式显示控件。

(继承自 HierarchicalDataSourceControl)

方法

AddedControl(Control, Int32)

在子控件添加到 Control 对象的 Controls 集合后调用。

(继承自 Control)
AddParsedSubObject(Object)

通知服务器控件,分析了一个元素(XML 或 HTML),并将该元素添加到服务器控件的 ControlCollection 对象中。

(继承自 Control)
ApplyStyleSheetSkin(Page)

将页样式表中定义的样式属性应用于控件。

(继承自 HierarchicalDataSourceControl)
BeginRenderTracing(TextWriter, Object)

开始输出数据的设计时追踪。

(继承自 Control)
BuildProfileTree(String, Boolean)

收集有关服务器控件的信息并将该信息发送到 Trace 属性,在启用页的跟踪功能时将显示该属性。

(继承自 Control)
ClearCachedClientID()

将缓存的 ClientID 值设置为 null

(继承自 Control)
ClearChildControlState()

删除服务器控件的子控件的控件状态信息。

(继承自 Control)
ClearChildState()

删除服务器控件的所有子控件的视图状态和控件状态信息。

(继承自 Control)
ClearChildViewState()

删除服务器控件的所有子控件的视图状态信息。

(继承自 Control)
ClearEffectiveClientIDMode()

将当前控件实例和任何子控件的 ClientIDMode 属性设置为 Inherit

(继承自 Control)
CreateChildControls()

由 ASP.NET 页框架调用,以通知服务器控件在准备回发或呈现时使用基于撰写的实现来创建其所包含任何子控件。

(继承自 Control)
CreateControlCollection()

创建一个新 ControlCollection 对象来保存服务器控件的子控件(包括文本控件和服务器控件)。

(继承自 HierarchicalDataSourceControl)
DataBind()

将数据源绑定到调用的服务器控件及其所有子控件。

(继承自 Control)
DataBind(Boolean)

将数据源绑定到调用的服务器控件及其所有子控件,同时可以选择引发 DataBinding 事件。

(继承自 Control)
DataBindChildren()

将数据源绑定到服务器控件的子控件。

(继承自 Control)
Dispose()

使服务器控件得以在从内存中释放之前执行最后的清理操作。

(继承自 Control)
EndRenderTracing(TextWriter, Object)

结束输出数据的设计时追踪。

(继承自 Control)
EnsureChildControls()

确定服务器控件是否包含子控件。 如果不包含,则创建子控件。

(继承自 Control)
EnsureID()

为尚未分配标识符的控件创建标识符。

(继承自 Control)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FindControl(String)

在当前的命名容器中搜索带指定 id 参数的服务器控件。

(继承自 HierarchicalDataSourceControl)
FindControl(String, Int32)

使用指定的 idpathOffset 参数(该参数有助于搜索)中指定的整数在当前命名容器中搜索服务器控件。 不应重写此版本的 FindControl 方法。

(继承自 Control)
Focus()

为控件设置输入焦点。

(继承自 HierarchicalDataSourceControl)
GetDesignModeState()

获取控件的设计时数据。

(继承自 Control)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetHierarchicalView(String)

根据数据源的起始节点和其他属性,检索一个基于 SiteMapProvider 对象所提供站点地图数据的单一视图。

GetList()

检索可用作数据列表的源的数据源控件的列表。

GetRouteUrl(Object)

获取与一组路由参数对应的 URL。

(继承自 Control)
GetRouteUrl(RouteValueDictionary)

获取与一组路由参数对应的 URL。

(继承自 Control)
GetRouteUrl(String, Object)

获取与一组路由参数以及某个路由名称对应的 URL。

(继承自 Control)
GetRouteUrl(String, RouteValueDictionary)

获取与一组路由参数以及某个路由名称对应的 URL。

(继承自 Control)
GetType()

获取当前实例的 Type

(继承自 Object)
GetUniqueIDRelativeTo(Control)

返回指定控件的 UniqueID 属性的前缀部分。

(继承自 Control)
GetView(String)

根据数据源的起始节点和其他属性,检索一个基于站点地图提供程序提供的站点地图数据的命名视图。

GetViewNames()

检索数据源控件的命名视图的集合。

HasControls()

确定服务器控件是否包含任何子控件。

(继承自 HierarchicalDataSourceControl)
HasEvents()

返回一个值,该值指示是否为控件或任何子控件注册事件。

(继承自 Control)
IsLiteralContent()

确定服务器控件是否只包含文字内容。

(继承自 Control)
LoadControlState(Object)

SaveControlState() 方法保存的上一个页请求还原控件状态信息。

(继承自 Control)
LoadViewState(Object)

从用 SaveViewState() 方法保存的上一个页面请求还原视图状态信息。

(继承自 Control)
MapPathSecure(String)

检索虚拟路径(绝对的或相对的)映射到的物理路径。

(继承自 Control)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnBubbleEvent(Object, EventArgs)

确定服务器控件的事件是否沿页的 UI 服务器控件层次结构向上传递。

(继承自 Control)
OnDataBinding(EventArgs)

引发 DataBinding 事件。

(继承自 Control)
OnDataSourceChanged(EventArgs)

引发 DataSourceChanged 事件。

(继承自 HierarchicalDataSourceControl)
OnInit(EventArgs)

引发 Init 事件。

(继承自 Control)
OnLoad(EventArgs)

引发 Load 事件。

(继承自 Control)
OnPreRender(EventArgs)

引发 PreRender 事件。

(继承自 Control)
OnUnload(EventArgs)

引发 Unload 事件。

(继承自 Control)
OpenFile(String)

获取用于读取文件的 Stream

(继承自 Control)
RaiseBubbleEvent(Object, EventArgs)

将所有事件源及其信息分配给控件的父级。

(继承自 Control)
RemovedControl(Control)

Control 对象的 Controls 集合移除子控件后调用。

(继承自 Control)
Render(HtmlTextWriter)

将服务器控件内容发送到给定的 HtmlTextWriter 对象,该对象可编写将在客户端呈现的内容。

(继承自 Control)
RenderChildren(HtmlTextWriter)

将服务器控件子级的内容输出到提供的 HtmlTextWriter 对象,该对象可写入要在客户端上呈现的内容。

(继承自 Control)
RenderControl(HtmlTextWriter)

将服务器控件内容输出到所提供的 HtmlTextWriter 对象,如果启用了跟踪,则还将存储有关该控件的跟踪信息。

(继承自 HierarchicalDataSourceControl)
RenderControl(HtmlTextWriter, ControlAdapter)

使用提供的 HtmlTextWriter 对象将服务器控件内容输出到提供的 ControlAdapter 对象。

(继承自 Control)
ResolveAdapter()

获取负责呈现指定控件的控件适配器。

(继承自 Control)
ResolveClientUrl(String)

获取浏览器可以使用的 URL。

(继承自 Control)
ResolveUrl(String)

将 URL 转换为在请求客户端可用的 URL。

(继承自 Control)
SaveControlState()

保存将页面回发到服务器之后发生的所有服务器控件状态更改。

(继承自 Control)
SaveViewState()

保存将页面回发到服务器之后发生的所有服务器控件视图状态更改。

(继承自 Control)
SetDesignModeState(IDictionary)

为控件设置设计时数据。

(继承自 Control)
SetRenderMethodDelegate(RenderMethod)

分配事件处理程序委托,以将服务器控件及其内容呈现到父控件中。

(继承自 Control)
SetTraceData(Object, Object)

使用跟踪数据键和跟踪数据值,为呈现数据的设计时追踪设置跟踪数据。

(继承自 Control)
SetTraceData(Object, Object, Object)

使用跟踪对象、跟踪数据键和跟踪数据值,为呈现数据的设计时追踪设置跟踪数据。

(继承自 Control)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
TrackViewState()

导致跟踪服务器控件的视图状态的更改,以便这些更改可以存储到服务器控件的 StateBag 对象中。 通过 ViewState 属性可访问此对象。

(继承自 Control)

事件

DataBinding

当服务器控件绑定到数据源时发生。

(继承自 Control)
Disposed

当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。

(继承自 Control)
Init

当服务器控件初始化时发生;初始化是控件生存期的第一步。

(继承自 Control)
Load

当服务器控件加载到 Page 对象中时发生。

(继承自 Control)
PreRender

在加载 Control 对象之后、呈现之前发生。

(继承自 Control)
Unload

当服务器控件从内存中卸载时发生。

(继承自 Control)

显式接口实现

IControlBuilderAccessor.ControlBuilder

有关此成员的说明,请参见 ControlBuilder

(继承自 Control)
IControlDesignerAccessor.GetDesignModeState()

有关此成员的说明,请参见 GetDesignModeState()

(继承自 Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

有关此成员的说明,请参见 SetDesignModeState(IDictionary)

(继承自 Control)
IControlDesignerAccessor.SetOwnerControl(Control)

有关此成员的说明,请参见 SetOwnerControl(Control)

(继承自 Control)
IControlDesignerAccessor.UserData

有关此成员的说明,请参见 UserData

(继承自 Control)
IDataBindingsAccessor.DataBindings

有关此成员的说明,请参见 DataBindings

(继承自 Control)
IDataBindingsAccessor.HasDataBindings

有关此成员的说明,请参见 HasDataBindings

(继承自 Control)
IDataSource.DataSourceChanged

数据源控件以某种影响数据绑定控件的方式发生变化时发生。

IDataSource.GetView(String)

有关此成员的说明,请参见 GetView(String)

IDataSource.GetViewNames()

有关此成员的说明,请参见 GetViewNames()

IExpressionsAccessor.Expressions

有关此成员的说明,请参见 Expressions

(继承自 Control)
IExpressionsAccessor.HasExpressions

有关此成员的说明,请参见 HasExpressions

(继承自 Control)
IHierarchicalDataSource.DataSourceChanged

更改 HierarchicalDataSourceControl 的方式对数据绑定控件产生一定影响时发生。

(继承自 HierarchicalDataSourceControl)
IHierarchicalDataSource.GetHierarchicalView(String)

获取指定路径的 IHierarchicalDataSource 接口的视图帮助器对象。

(继承自 HierarchicalDataSourceControl)
IListSource.ContainsListCollection

获取一个值,该值指示集合是否为 IList 对象的集合。

IListSource.GetList()

有关此成员的说明,请参见 GetList()

IParserAccessor.AddParsedSubObject(Object)

有关此成员的说明,请参见 AddParsedSubObject(Object)

(继承自 Control)

扩展方法

FindDataSourceControl(Control)

返回与指定控件的数据控件关联的数据源。

FindFieldTemplate(Control, String)

返回指定控件的命名容器中指定列的字段模板。

FindMetaTable(Control)

返回包含数据控件的元表对象。

GetDefaultValues(IDataSource)

为指定数据源获取默认值的集合。

GetMetaTable(IDataSource)

获取指定数据源对象中表的元数据。

TryGetMetaTable(IDataSource, MetaTable)

确定表元数据是否可用。

适用于

另请参阅