SiteMapPath.RootNodeTemplate Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um modelo de controle a ser usado para o nó raiz de um caminho de navegação no site.
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
Valor da propriedade
Um ITemplate objeto que implementa o InstantiateIn(Control) método para renderizar conteúdo personalizado para o nó raiz de um caminho de navegação.
- Atributos
Exemplos
O exemplo de código a seguir demonstra como definir programaticamente uma classe que implementa a ITemplate interface para encapsular um Image controle. Em seguida, a RootNodeTemplate propriedade é definida como uma instância da classe .
<%@ 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>
Comentários
Defina o RootNodeTemplate como um ITemplate objeto para usar um Image controle ou algum outro controle, como um Label elemento de interface do usuário do nó raiz em vez de uma cadeia de caracteres.
Se a RootNodeTemplate propriedade estiver definida, o modelo substituirá o texto do nó de navegação raiz exibido e qualquer RootNodeStyle aplicado a ela. O modelo também substituirá as CurrentNodeTemplate propriedades e CurrentNodeStyle se a página raiz for a página exibida no momento.
Você pode definir declarativamente a RootNodeTemplate propriedade para qualquer controle de servidor Web e a infraestrutura ASP.NET executa as etapas necessárias para encapsular o controle do servidor Web como um ITemplate. No entanto, os controles do servidor Web não implementam a ITemplate interface; portanto, quando você trabalha com as ITemplate propriedades programaticamente, você deve escrever um ITemplate wrapper para qualquer código de modelo. Em seguida, a RootNodeTemplate propriedade é definida como uma instância do ITemplate wrapper.