SiteMapPath.RootNodeTemplate 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定控制項樣板以供網站巡覽路徑的根節點使用。
public:
virtual property System::Web::UI::ITemplate ^ RootNodeTemplate { System::Web::UI::ITemplate ^ get(); void set(System::Web::UI::ITemplate ^ value); };
[System.ComponentModel.Browsable(false)]
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
[System.Web.UI.TemplateContainer(typeof(System.Web.UI.WebControls.SiteMapNodeItem))]
public virtual System.Web.UI.ITemplate RootNodeTemplate { get; set; }
[<System.ComponentModel.Browsable(false)>]
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
[<System.Web.UI.TemplateContainer(typeof(System.Web.UI.WebControls.SiteMapNodeItem))>]
member this.RootNodeTemplate : System.Web.UI.ITemplate with get, set
Public Overridable Property RootNodeTemplate As ITemplate
屬性值
實作 ITemplate 方法的 InstantiateIn(Control) 物件,以便呈現巡覽路徑根節點的自訂內容。
- 屬性
範例
下列程式代碼範例示範如何以程式設計方式定義實作 介面以包裝控件的ITemplateImage類別。 然後,屬性 RootNodeTemplate 會設定為 類別的實例。
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Create the SiteMapPath control.
SiteMapPath navpath = new SiteMapPath();
// Make the root node look unique.
// The Image that you can use in your Web page is an
// instance of the WebControls.Image class, not the
// Drawing.Image class.
System.Web.UI.WebControls.Image rootNodeImage =
new System.Web.UI.WebControls.Image();
rootNodeImage.ImageUrl = "myimage.jpg";
ImageTemplate rootNodeImageTemplate = new ImageTemplate();
rootNodeImageTemplate.MyImage = rootNodeImage;
navpath.RootNodeTemplate = rootNodeImageTemplate;
// Make the current node look unique.
Style currentNodeStyle = new Style();
navpath.CurrentNodeStyle.ForeColor = System.Drawing.Color.AliceBlue;
navpath.CurrentNodeStyle.BackColor = System.Drawing.Color.Bisque;
// Set the path separator to be something other
// than the default.
navpath.PathSeparator = "::";
PlaceHolder1.Controls.Add(navpath);
}
// A simple Template class to wrap an image.
public class ImageTemplate : ITemplate
{
private System.Web.UI.WebControls.Image myImage;
public System.Web.UI.WebControls.Image MyImage
{
get
{
return myImage;
}
set
{
myImage = value;
}
}
public void InstantiateIn(Control container)
{
container.Controls.Add(MyImage);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>About Our Company</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
<h1>About Our Company</h1>
<p>Our company was founded in 1886.</p>
<p>We use only the finest ingredients, organically grown fruits, and
natural spices in our homemade pies. We use no artificial preservatives
or coloring agents. We would not have it any other way!</p>
</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">
<script runat="server">
Private Sub Page_Load(sender As Object, e As EventArgs)
' Create the SiteMapPath control.
Dim navpath As New SiteMapPath()
' Make the root node look unique.
' The Image that you can use in your Web page is an
' instance of the WebControls.Image class, not the
' Drawing.Image class.
Dim rootNodeImage As New System.Web.UI.WebControls.Image()
rootNodeImage.ImageUrl = "myimage.jpg"
Dim rootNodeImageTemplate As New ImageTemplate()
rootNodeImageTemplate.MyImage = rootNodeImage
navpath.RootNodeTemplate = rootNodeImageTemplate
' Make the current node look unique.
Dim currentNodeStyle As New Style()
navpath.CurrentNodeStyle.ForeColor = System.Drawing.Color.AliceBlue
navpath.CurrentNodeStyle.BackColor = System.Drawing.Color.Bisque
' Set the path separator to be something other
' than the default.
navpath.PathSeparator = "::"
PlaceHolder1.Controls.Add(navpath)
End Sub ' Page_Load
' A simple Template class to wrap an image.
Public Class ImageTemplate
Implements ITemplate
Private anImage As System.Web.UI.WebControls.Image
Public Property MyImage As System.Web.UI.WebControls.Image
Get
return anImage
End Get
Set
anImage = value
End Set
End Property ' MyImage
Public Overridable Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
container.Controls.Add(MyImage)
End Sub ' InstantiateIn
End Class ' ImageTemplate
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>About Our Company</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
<h1>About Our Company</h1>
<p>Our company was founded in 1886.</p>
<p>We use only the finest ingredients, organically grown fruits, and
natural spices in our homemade pies. We use no artificial preservatives
or coloring agents. We would not have it any other way!</p>
</form>
</body>
</html>
備註
RootNodeTemplate將 設定為 ITemplate 物件,以使用Image控件或其他控件,例如Label作為根節點的使用者介面專案,而不是字串。
RootNodeTemplate如果已設定屬性,範本會覆寫顯示的根導覽節點文字,以及套用至它的任何RootNodeStyle文字。 如果根頁面是目前顯示的頁面,範本也會覆寫 CurrentNodeTemplate 和 CurrentNodeStyle 屬性。
您可以宣告方式將 RootNodeTemplate 屬性設定為任何 Web 伺服器控制件,而 ASP.NET 基礎結構會執行必要的步驟,將 Web 伺服器控制項包裝為 ITemplate。 不過,Web 伺服器控制項不會實 ITemplate 作 介面;因此,當您以程式設計方式使用 ITemplate 屬性時,您必須為任何範本程式碼撰寫 ITemplate 包裝函式。 然後,屬性 RootNodeTemplate 會設定為包裝函式的 ITemplate 實例。