Exportar (0) Imprimir
Expandir todo

SiteMapPath.InitializeItem (Método)

Actualización: noviembre 2007

Rellena SiteMapNodeItem, que es un control de servidor Web que representa SiteMapNode, con un conjunto de controles secundarios basándose en la función del nodo y en las plantillas y estilos especificados para el nodo.

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

protected virtual void InitializeItem(
	SiteMapNodeItem item
)
protected void InitializeItem(
	SiteMapNodeItem item
)
protected function InitializeItem(
	item : SiteMapNodeItem
)

Parámetros

item
Tipo: System.Web.UI.WebControls.SiteMapNodeItem
SiteMapNodeItem que se va a inicializar.

El método InitializeItem determina el tipo funcional del nodo que el elemento representa mediante la comprobación de SiteMapNodeItemType, y aplica las plantillas o estilos definidos para ese tipo de nodo.

Si SiteMapNodeItem tiene un tipo de elemento Root, se crea un control secundario HyperLink y se pueden aplicar RootNodeTemplate y RootNodeStyle. Si se establece RootNodeTemplate, su ITemplate se aplica al nodo. Si en su lugar se establece RootNodeStyle, se combina con cualquier NodeStyle definida y se aplica. Finalmente, si no se han definido plantillas o estilos, se crea un control HyperLink básico y se inicializa con los valores del nodo.

Si SiteMapNodeItem tiene un tipo de elemento Current, se crea un control secundario Literal o HyperLink, dependiendo del valor devuelto de RenderCurrentNodeAsLink. A continuación, se puede aplicar CurrentNodeTemplate o CurrentNodeStyle. Si se establece CurrentNodeTemplate, su ITemplate se aplica al nodo. Si en su lugar se establece CurrentNodeStyle, se combina con cualquier NodeStyle definida y se aplica.

Si SiteMapNodeItem tiene un tipo de elemento Parent, se crea un control secundario HyperLink y se pueden aplicar NodeTemplate y NodeStyle. Si se establece NodeTemplate, su ITemplate se aplica al nodo. Si en su lugar se establece NodeStyle, se aplica.

Finalmente, si SiteMapNodeItem tiene un tipo de elemento PathSeparator, se crea un control secundario Literal y se aplican PathSeparatorTemplate y PathSeparatorStyle según las reglas generales definidas para un tipo de nodo Parent.

Reemplace el método InitializeItem para manipular objetos SiteMapNodeItem individuales. Si el diseño de la clase requiere un control más amplio de cómo se crean los objetos SiteMapNodeItem y se agregan al control SiteMapPath, reemplace el método CreateControlHierarchy.

En el ejemplo de código siguiente se muestra cómo reemplazar el método InitializeItem para agregar funcionalidad a un control que deriva de SiteMapPath. Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase SiteMapPath.

// Override the InitializeItem method to add a PathSeparator
// and DropDownList to the current node.
protected override void InitializeItem(SiteMapNodeItem item) {

    // The only node that must be handled is the CurrentNode.
    if (item.ItemType == SiteMapNodeItemType.Current)
    {
        HyperLink hLink = new HyperLink();

        // No Theming for the HyperLink.
        hLink.EnableTheming = false;
        // Enable the link of the SiteMapPath is enabled.
        hLink.Enabled = this.Enabled;

        // Set the properties of the HyperLink to
        // match those of the corresponding SiteMapNode.
        hLink.NavigateUrl = item.SiteMapNode.Url;
        hLink.Text        = item.SiteMapNode.Title;
        if (ShowToolTips) {
            hLink.ToolTip = item.SiteMapNode.Description;
        }

        // Apply styles or templates to the HyperLink here.
        // ...
        // ...

        // Add the item to the Controls collection.
        item.Controls.Add(hLink);

        AddDropDownListAfterCurrentNode(item);
    }
    else {
        base.InitializeItem(item);
    }
}


// Override the InitializeItem method to add a PathSeparator
// and DropDownList to the current node.
protected void InitializeItem(SiteMapNodeItem item)
{
    // The only node that must be handled is the CurrentNode.
    if (item.get_ItemType().Equals(SiteMapNodeItemType.Current)) {
        HyperLink hLink = new HyperLink();
        // No Theming for the HyperLink.
        hLink.set_EnableTheming(false);
        // Enable the link of the SiteMapPath is enabled.
        hLink.set_Enabled(this.get_Enabled());
        // Set the properties of the HyperLink to 
        // match those of the corresponding SiteMapNode.
        hLink.set_NavigateUrl(item.get_SiteMapNode().get_Url());
        hLink.set_Text(item.get_SiteMapNode().get_Title());
        if (get_ShowToolTips()) {
            hLink.set_ToolTip(item.get_SiteMapNode().get_Description());
        }
        // Apply styles or templates to the HyperLink here.
        // ...
        // ...
        // Add the item to the Controls collection.
        item.get_Controls().Add(hLink);

        AddDropDownListAfterCurrentNode(item);
    }
    else {
        super.InitializeItem(item);
    }   
} //InitializeItem


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft