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 控件内的 和 TreeView 控件 ContentPlaceHolder 。 它使用 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。

如果将 DataSourceID 的 更改为 TreeViewSiteMapDataSource2,则控件以 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 存储在视图状态中。

适用于

另请参阅