SiteMapDataSource.StartingNodeOffset 属性

定义

获取或设置一个从起始节点开始计算的正整数或负整数偏移量,该起始节点确定了由数据源控件公开的根层次结构。

public:
 virtual property int StartingNodeOffset { int get(); void set(int value); };
public virtual int StartingNodeOffset { get; set; }
member this.StartingNodeOffset : int with get, set
Public Overridable Property StartingNodeOffset As Integer

属性值

默认值为 0,它指示由 SiteMapDataSource 公开的根层次结构与起始节点相同。

示例

下面的代码示例演示 和 StartingNodeOffset 属性的效果StartingNodeUrl。 该示例由多个 ASP.NET 页、一个母版页、母版页部分和一个 Web.sitemap 文件组成。 Web.sitemap 文件定义网站的分层结构。 对于此代码示例,它定义由唯一 URL 标识的页数,例如 1.aspx、2.aspx、A.aspx 和 B.aspx,如下所示:

Site.master 页包含 SiteMapDataSource 控件内的 ContentPlaceHolderTreeView 控件。 它使用 StartingNodeUrl 属性将公开层次结构的起始节点标识为 Default.aspx。 Site.master 文件仅由 Default.aspx 页使用。

所有其他页面(如 1.aspx、2.aspx、A.aspx 等)都使用 Section.master 母版页。 此母版页与 Site.master 非常相似,但它包含多个 SiteMapDataSource 可以试验的控件。 TreeView显示站点地图数据的控件最初绑定到 SiteMapDataSource1,后者将 指定StartingNodeOffset为 1。 这表示显示当前请求页的父节点。 如果查看第 1.aspx 页,则 显示的 TreeView 层次结构为 A、1、2。 但是,如果查看第 4.aspx 页,则层次结构为 B、3、4。

如果将 的 TreeView 更改为 DataSourceIDSiteMapDataSource2,控件以TreeView不同的方式显示站点地图数据。 使用 SiteMapDataSource2时, StartFromCurrentNode 属性设置为 true,这意味着相对于当前请求的页面显示站点地图数据,并将 StartingNodeOffset 属性设置为 -1,指示尽可能显示一个级别的子节点。 查看 A.aspx 页时,显示的层次结构是当前级别的层次结构,包括所有同级,如 B 和 C。查看 1.aspx 时,不再显示父节点。

下面的代码示例演示可与本代码示例的其他组件一起使用的 ASP.NET 页。

<%@ Page MasterPageFile="~/Section.master" Title="Untitled Page" %>  

<asp:Content ID="Content1" ContentPlaceHolderID=MainBody Runat=Server>  
  <h2>1.aspx</h2>  
</asp:Content>  

注解

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

如果标识的起始节点是表示当前请求页的节点, StartingNodeOffset 则会忽略 。

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

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

属性的值 StartingNodeOffset 存储在视图状态中。

适用于

另请参阅