请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
全部折叠/全部展开 全部折叠
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 类库
SiteMapDataSource 类

注意:此类在 .NET Framework 2.0 版中是新增的。

提供了一个数据源控件,Web 服务器控件及其他控件可使用该控件绑定到分层的站点地图数据。

命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)

Visual Basic(声明)
Public Class SiteMapDataSource
    Inherits HierarchicalDataSourceControl
    Implements IDataSource, IListSource
Visual Basic(用法)
Dim instance As SiteMapDataSource
C#
public class SiteMapDataSource : HierarchicalDataSourceControl, IDataSource, IListSource
C++
public ref class SiteMapDataSource : public HierarchicalDataSourceControl, IDataSource, IListSource
J#
public class SiteMapDataSource extends HierarchicalDataSourceControl implements IDataSource, IListSource
JScript
public class SiteMapDataSource extends HierarchicalDataSourceControl implements IDataSource, IListSource

SiteMapDataSource 控件是站点地图数据的数据源,站点数据则由为站点配置的站点地图提供程序进行存储。SiteMapDataSource 使那些并非专门作为站点导航控件的 Web 服务器控件(如 TreeViewMenuDropDownList 控件)能够绑定到分层的站点地图数据。可以使用这些 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 个级别,则使用当前被请求页作为起始节点。

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

与所有数据源控件一样,SiteMapDataSource 的每个实例都与单个帮助器对象关联,该帮助器对象称为数据源视图。SiteMapDataSourceView 是一个基于站点地图数据的视图,根据数据源的属性进行设置,并且通过调用 GetHierarchicalView 方法来检索此视图。SiteMapDataSourceView 维护控件所绑定到的 SiteMapNodeCollection 对象。

默认情况下,起始节点是层次结构的根节点,但是您可将起始节点设置为任何节点。起始节点可以是相对于站点地图中当前位置的一个节点,或者是相对于某个绝对位置的节点。通过设置 StartingNodeUrl 属性可指定起始节点。

SiteMapDataSource 专用于导航数据,并且不支持排序、筛选、分页或缓存之类的常规数据源操作,也不支持更新、插入或删除之类的数据记录操作。

TopicLocation
如何:本地化站点地图数据生成 ASP .NET Web 应用程序
如何:本地化站点地图数据在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:以编程方式控制 ASP.NET 菜单在 Visual Studio 中构建 ASP .NET Web 应用程序
演练:以编程方式控制 ASP.NET 菜单在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:向网站添加站点导航在 Visual Studio 中构建 ASP .NET Web 应用程序
演练:向网站添加站点导航使用 Visual Web Developer 生成应用程序
演练:根据安全角色筛选站点地图节点在 Visual Studio 中构建 ASP .NET Web 应用程序
演练:根据安全角色筛选站点地图节点在 Visual Studio 中生成 ASP .NET Web 应用程序

下面的代码示例演示如何以声明方式使用 SiteMapDataSource 控件将 TreeView 控件绑定到一个站点地图。该站点地图数据从根节点级别开始检索。

Visual Basic
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<HTML>
    <BODY>
        <FORM runat="server">
            <asp:SiteMapDataSource
                id="SiteMapDataSource1"
                runat="server" />

            <asp:TreeView
                id="TreeView1"
                runat="server"
                DataSourceID="SiteMapDataSource1">
            </asp:TreeView>

        </FORM>
    </BODY>
</HTML>
C#
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<HTML>
    <BODY>
        <FORM runat="server">
            <asp:SiteMapDataSource
                id="SiteMapDataSource1"
                runat="server" />

            <asp:TreeView
                id="TreeView1"
                runat="server"
                DataSourceID="SiteMapDataSource1">
            </asp:TreeView>

        </FORM>
    </BODY>
</HTML>
J#
<%@ Page Language="VJ#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<HTML>
    <BODY>
        <FORM runat="server">
            <asp:SiteMapDataSource
                id="SiteMapDataSource1"
                runat="server">
            </asp:SiteMapDataSource>

            <asp:TreeView
                id="TreeView1"
                runat="server"
                DataSourceID="SiteMapDataSource1">
            </asp:TreeView>

        </FORM>
    </BODY>
</HTML>
System.Object
   System.Web.UI.Control
     System.Web.UI.HierarchicalDataSourceControl
      System.Web.UI.WebControls.SiteMapDataSource
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework

受以下版本支持:2.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker