SiteMapPath.RootNodeTemplate Property

Definition

Ruft eine Steuerelementvorlage ab oder legt eine Steuerelementvorlage fest, die für den Stammknoten eines Sitenavigationspfades verwendet werden soll.Gets or sets a control template to use for the root node of a site navigation path.

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; }
member this.RootNodeTemplate : System.Web.UI.ITemplate with get, set
Public Overridable Property RootNodeTemplate As ITemplate

Property Value

ITemplate

Ein ITemplate-Objekt, das die InstantiateIn(Control)-Methode implementiert, um benutzerdefinierten Inhalt für den Stammknoten eines Navigationspfades zu rendern.An ITemplate object that implements the InstantiateIn(Control) method, to render custom content for the root node of a navigation path.

Attributes

Examples

Im folgenden Codebeispiel wird veranschaulicht, wie Sie Programm gesteuert eine Klasse definieren, die die ITemplate-Schnittstelle implementiert, um ein Image Steuerelement zu wrappen.The following code example demonstrates how to programmatically define a class that implements the ITemplate interface to wrap an Image control. Anschließend wird die RootNodeTemplate-Eigenschaft auf eine Instanz der-Klasse festgelegt.Then, the RootNodeTemplate property is set to an instance of the class.

<%@ 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>

Remarks

Legen Sie den RootNodeTemplate auf ein ITemplate Objekt fest, um ein Image Steuerelement oder ein anderes Steuerelement zu verwenden, z. b. eine Label als Benutzeroberflächen Element des Stamm Knotens anstelle einer Zeichenfolge.Set the RootNodeTemplate to an ITemplate object to use an Image control or some other control, such as a Label as the root node's user interface element instead of a string.

Wenn die RootNodeTemplate-Eigenschaft festgelegt ist, überschreibt die Vorlage sowohl den angezeigten Text des Stamm Navigations Knotens als auch alle darauf angewendeten RootNodeStyle.If the RootNodeTemplate property is set, the template overrides both the root navigation node text displayed and any RootNodeStyle applied to it. Die Vorlage überschreibt auch die Eigenschaften CurrentNodeTemplate und CurrentNodeStyle, wenn die Stamm Seite die aktuell angezeigte Seite ist.The template also overrides the CurrentNodeTemplate and CurrentNodeStyle properties if the root page is the currently displayed page.

Sie können die RootNodeTemplate-Eigenschaft deklarativ auf ein beliebiges Webserver Steuerelement festlegen, und die ASP.NET-Infrastruktur führt die erforderlichen Schritte aus, um das Webserver-Steuerelement als ITemplatezu wrappen.You can declaratively set the RootNodeTemplate property to any Web server control, and the ASP.NET infrastructure performs the necessary steps to wrap the Web server control as an ITemplate. Die ITemplate-Schnittstelle wird jedoch von Webserver Steuerelementen nicht implementiert. Wenn Sie die ITemplate Eigenschaften Programm gesteuert arbeiten, müssen Sie daher einen ITemplate-Wrapper für beliebige Vorlagen Codes schreiben.However, Web server controls do not implement the ITemplate interface; therefore, when you work with the ITemplate properties programmatically, you must write an ITemplate wrapper for any template code. Anschließend wird die RootNodeTemplate-Eigenschaft auf eine Instanz des ITemplate-Wrappers festgelegt.Then, the RootNodeTemplate property is set to an instance of the ITemplate wrapper.

Applies to

See also