Exporter (0) Imprimer
Développer tout

SiteMapNodeItem, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

La classe SiteMapNodeItem est utilisée par le contrôle SiteMapPath pour représenter un SiteMapNode d'un point de vue fonctionnel.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public class SiteMapNodeItem : WebControl, IDataItemContainer, INamingContainer
public class SiteMapNodeItem extends WebControl implements IDataItemContainer, INamingContainer
public class SiteMapNodeItem extends WebControl implements IDataItemContainer, INamingContainer

Le contrôle SiteMapPath est un CompositeControl, ce qui signifie qu'il restitue une interface utilisateur composée de plusieurs autres contrôles serveur Web. Alors que le contrôle SiteMapPath fonctionne directement avec le SiteMap configuré pour votre site et ses objets SiteMapNode, les objets SiteMapNode ne sont pas des contrôles serveur Web. La classe SiteMapNodeItem est un wrapper de contrôle serveur Web pour la classe SiteMapNode qui permet au contrôle SiteMapPath d'afficher des données SiteMapNode tout en maintenant la distinction fonctionnelle entre un élément de données de navigation générique et un élément d'interface utilisateur.

Le contrôle SiteMapPath conserve en interne les nœuds de plan de site dans sa collection Controls. Puisque SiteMapPath peut restituer ses contrôles enfants avec différents styles, modèles et ordres, il doit être en mesure d'établir une distinction entre des types de nœuds fonctionnellement différents, quel que soit l'ordre d'affichage. Pour cette raison, chaque SiteMapNodeItem est créé avec un type spécifique. (Les types possibles sont répertoriés dans l'énumération SiteMapNodeItemType.)

Utilisez la classe SiteMapNodeItem directement dans votre code uniquement si vous projetez d'étendre le contrôle SiteMapPath ou d'écrire un contrôle avec des fonctionnalités semblables.

L'exemple de code suivant montre comment créer et manipuler des objets SiteMapNodeItem dans la méthode InitializeItem d'une classe dérivée de SiteMapPath. Cet exemple de code fait partie d'un exemple plus développé fourni pour la classe SiteMapPath.

private void AddDropDownListAfterCurrentNode(SiteMapNodeItem item) {

    SiteMapNodeCollection childNodes = item.SiteMapNode.ChildNodes;

    // Only do this work if there are child nodes.
    if (childNodes != null) {

        // Add another PathSeparator after the CurrentNode.
        SiteMapNodeItem finalSeparator =
            new SiteMapNodeItem(item.ItemIndex,
                                SiteMapNodeItemType.PathSeparator);

        SiteMapNodeItemEventArgs eventArgs =
            new SiteMapNodeItemEventArgs(finalSeparator);

        InitializeItem(finalSeparator);
        // Call OnItemCreated every time a SiteMapNodeItem is
        // created and initialized.
        OnItemCreated(eventArgs);

        // The pathSeparator does not bind to any SiteMapNode, so
        // do not call DataBind on the SiteMapNodeItem.
        item.Controls.Add(finalSeparator);

        // Create a DropDownList and populate it with the children of the
        // CurrentNode. There are no styles or templates that are applied
        // to the DropDownList control. If OnSelectedIndexChanged is raised,
        // the event handler redirects to the page selected.
        // The CurrentNode has child nodes.
        DropDownList ddList = new DropDownList();
        ddList.AutoPostBack = true;

        ddList.SelectedIndexChanged += new EventHandler(this.DropDownNavPathEventHandler);

        // Add a ListItem to the DropDownList for every node in the
        // SiteMapNodes collection.
        foreach (SiteMapNode node in childNodes) {
            ddList.Items.Add(new ListItem(node.Title, node.Url));
        }

        item.Controls.Add(ddList);
    }
}

private void AddDropDownListAfterCurrentNode(SiteMapNodeItem item)
{
    SiteMapNodeCollection childNodes = item.get_SiteMapNode().
        get_ChildNodes();
    // Only do this work if there are child nodes.
    if (childNodes != null) {
        // Add another PathSeparator after the CurrentNode.
        SiteMapNodeItem finalSeparator = new SiteMapNodeItem(item.
            get_ItemIndex(), SiteMapNodeItemType.PathSeparator);

        SiteMapNodeItemEventArgs eventArgs = new SiteMapNodeItemEventArgs(
            finalSeparator);

        InitializeItem(finalSeparator);
        // Call OnItemCreated every time a SiteMapNodeItem is
        // created and initialized.
        OnItemCreated(eventArgs);
        // The pathSeparator does not bind to any SiteMapNode, so 
        // do not call DataBind on the SiteMapNodeItem.
        item.get_Controls().Add(finalSeparator);
        // Create a DropDownList and populate it with the children of the 
        // CurrentNode. There are no styles or templates that are applied
        // to the DropDownList control. If OnSelectedIndexChanged is raised, 
        // the event handler redirects to the page selected.
        // The CurrentNode has child nodes.
        DropDownList ddList = new DropDownList();
        ddList.set_AutoPostBack(true);

        ddList.add_SelectedIndexChanged(new EventHandler(this.
            DropDownNavPathEventHandler));
        // Add a ListItem to the DropDownList for every node in the
        // SiteMapNodes collection.
        for (int iCtr = 0; iCtr < childNodes.get_Count(); iCtr++) {
            SiteMapNode node = (SiteMapNode)childNodes.get_Item(iCtr);
            ddList.get_Items().Add(new ListItem(node.get_Title(), node.
                get_Url()));
        }

        item.get_Controls().Add(ddList);
    }
} //AddDropDownListAfterCurrentNode

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
      System.Web.UI.WebControls.SiteMapNodeItem

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft