Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

HierarchicalDataSourceControl, classe

Fournit une classe de base pour les contrôles de code source de données qui représentent des données hiérarchiques.

Espace de noms :  System.Web.UI
Assembly :  System.Web (dans System.Web.dll)
[BindableAttribute(false)]
public abstract class HierarchicalDataSourceControl : Control, 
	IHierarchicalDataSource
<asp:HierarchicalDataSourceControl />

Le type HierarchicalDataSourceControl expose les membres suivants.

  NomDescription
Méthode protégéeHierarchicalDataSourceControlInitialise une nouvelle instance de la classe HierarchicalDataSourceControl.
Début
  NomDescription
Propriété protégéeAdapterObtient l'adaptateur spécifiques au navigateur pour le contrôle. (Hérité de Control.)
Propriété publiqueAppRelativeTemplateSourceDirectoryObtient ou définit le répertoire virtuel relatif à l'application de l'objet d' Page ou d' UserControl qui contient ce contrôle. (Hérité de Control.)
Propriété publiqueBindingContainerInfrastructure. Obtient le contrôle qui contient la liaison de données de ce contrôle. (Hérité de Control.)
Propriété protégéeChildControlsCreatedObtient une valeur qui indique si les contrôles enfants du contrôle serveur ont été créés. (Hérité de Control.)
Propriété publiqueClientIDObtient l'identificateur de contrôle serveur généré par ASP.NET. (Substitue Control.ClientID.)
Propriété publiqueClientIDModeCette propriété n'est pas utilisée pour les contrôles de source de données. (Substitue Control.ClientIDMode.)
Propriété protégéeClientIDSeparatorObtient une valeur de caractères représentant le caractère de séparation utilisé dans la propriété d' ClientID . (Hérité de Control.)
Propriété protégéeContextObtient l'objet d' HttpContext associé au contrôle serveur pour la requête Web active. (Hérité de Control.)
Propriété publiqueControlsObtient un objet ControlCollection qui représente les contrôles enfants d'un contrôle serveur spécifié dans la hiérarchie de l'interface utilisateur. (Substitue Control.Controls.)
Propriété publiqueDataItemContainerObtient une référence au conteneur d'attribution de noms si le conteneur d'attribution de noms implémente IDataItemContainer. (Hérité de Control.)
Propriété publiqueDataKeysContainerObtient une référence au conteneur d'attribution de noms si le conteneur d'attribution de noms implémente IDataKeysControl. (Hérité de Control.)
Propriété protégéeDesignModeObtient une valeur indiquant si un contrôle est utilisé sur une aire de conception. (Hérité de Control.)
Propriété publiqueEnableThemingObtient une valeur indiquant si cet objet prend en charge des thèmes. (Substitue Control.EnableTheming.)
Propriété publiqueEnableViewStateObtient ou définit une valeur indiquant si le contrôle serveur conserve son état d'affichage, et l'état d'affichage de tous les contrôles enfants qu'il contient, un client demandeur. (Hérité de Control.)
Propriété protégéeEventsObtient une liste des délégués de gestionnaire d'événements pour le contrôle. Cette propriété est en lecture seule. (Hérité de Control.)
Propriété protégéeHasChildViewStateObtient une valeur indiquant si les contrôles enfants actuels du contrôle serveur ont des paramètres enregistrés d'état d'affichage. (Hérité de Control.)
Propriété publiqueIDObtient ou définit l'identificateur programmatique assigné au contrôle serveur. (Hérité de Control.)
Propriété protégéeIdSeparatorInfrastructure. Obtient le caractère utilisé pour séparer les ID de contrôle. (Hérité de Control.)
Propriété protégéeIsChildControlStateClearedObtient une valeur indiquant si les contrôles contenus dans le contrôle ont l'état du contrôle. (Hérité de Control.)
Propriété protégéeIsTrackingViewStateObtient une valeur qui indique si le contrôle serveur enregistre les modifications apportées à son état d'affichage. (Hérité de Control.)
Propriété protégéeIsViewStateEnabledObtient une valeur indiquant si l'état d'affichage est activé pour ce contrôle. (Hérité de Control.)
Propriété protégéeLoadViewStateByIDObtient une valeur indiquant si le contrôle participe au chargement son état d'affichage par ID au lieu de l'index. (Hérité de Control.)
Propriété publiqueNamingContainerObtient une référence au conteneur d'attribution de noms du contrôle serveur, qui crée un seul espace de noms pour différencier des contrôles serveur avec la même valeur de propriété d' Control.ID . (Hérité de Control.)
Propriété publiquePageObtient une référence à l'instance d' Page qui contient le contrôle serveur. (Hérité de Control.)
Propriété publiqueParentObtient une référence au contrôle du parent du contrôle serveur dans la hiérarchie des contrôles de la page. (Hérité de Control.)
Propriété publiqueRenderingCompatibilityObtient une valeur qui spécifie la version d'ASP.NET que le code HTML restitué sera compatible avec. (Hérité de Control.)
Propriété publiqueSiteObtient des informations sur le conteneur qui héberge le contrôle actuel lorsqu'il est affiché sur une aire de conception. (Hérité de Control.)
Propriété publiqueSkinIDObtient ou définit l'apparence à appliquer au contrôle HierarchicalDataSourceControl. (Substitue Control.SkinID.)
Propriété publiqueTemplateControlObtient ou définit une référence au modèle qui contient ce contrôle. (Hérité de Control.)
Propriété publiqueTemplateSourceDirectoryObtient le répertoire virtuel d' Page ou d' UserControl qui contient le contrôle serveur actuel. (Hérité de Control.)
Propriété publiqueUniqueIDObtient l'unique, de manière hiérarchique qualifié identificateur du contrôle serveur. (Hérité de Control.)
Propriété publiqueValidateRequestModeObtient ou définit une valeur qui indique si le contrôle vérifie l'entrée de client du navigateur pour les valeurs non sécurisées. (Hérité de Control.)
Propriété protégéeViewStateObtient un dictionnaire des informations d'état qui vous permettent d'enregistrer et de restaurer l'état d'affichage d'un contrôle serveur sur plusieurs demandes pour la même page. (Hérité de Control.)
Propriété protégéeViewStateIgnoresCaseObtient une valeur qui indique si l'objet d' StateBag ne respecte pas la casse. (Hérité de Control.)
Propriété publiqueViewStateModeObtient ou définit le mode d'état d'affichage de ce contrôle. (Hérité de Control.)
Propriété publiqueVisibleObtient ou définit une valeur indiquant l'affichage visuel ou non du contrôle. (Substitue Control.Visible.)
Début
  NomDescription
Méthode protégéeAddedControlAppelé après un contrôle enfant est ajouté à la collection d' Controls de l'objet d' Control . (Hérité de Control.)
Méthode protégéeAddParsedSubObjectInforme le contrôle serveur qu'un élément, XML ou HTML, a été analysé, et ajoute l'élément à l'objet d' ControlCollection du contrôle serveur. (Hérité de Control.)
Méthode publiqueApplyStyleSheetSkinApplique les propriétés de style qui sont définies dans la feuille de style de la page au contrôle. (Substitue Control.ApplyStyleSheetSkin(Page).)
Méthode protégéeBeginRenderTracingDémarre le suivi au moment de le design des données de rendu. (Hérité de Control.)
Méthode protégéeBuildProfileTreeInfrastructure. Rassemble des informations à propos de le contrôle serveur et les fournit à la propriété d' Trace à afficher lorsque le traçage est activé pour la page. (Hérité de Control.)
Méthode protégéeClearCachedClientIDInfrastructure. Définit la valeur mise en cache d' ClientID à null. (Hérité de Control.)
Méthode protégéeClearChildControlStateSupprime les informations sur l'état du contrôle pour les contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode protégéeClearChildStateSupprime l'état d'affichage et les informations sur l'état du contrôle pour les contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode protégéeClearChildViewStateSupprime les informations d'état d'affichage pour des contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode protégéeClearEffectiveClientIDModeInfrastructure. Définit la propriété d' ClientIDMode de l'instance de contrôle actuelle et de tous les contrôles enfants à Inherit. (Hérité de Control.)
Méthode protégéeCreateChildControlsAppelé par l'infrastructure de page ASP.NET. pour informer les contrôles serveur qu'implémentation composition-basée par utilisation de pour créer tous contrôles enfants qu'ils contiennent pendant la vice versa ou du rendu de publication. (Hérité de Control.)
Méthode protégéeCreateControlCollectionCrée un nouvel objet ControlCollection pour contenir les contrôles enfants (littéraux et serveur) du contrôle serveur. (Substitue Control.CreateControlCollection().)
Méthode publiqueDataBind()Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants. (Hérité de Control.)
Méthode protégéeDataBind(Boolean)Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants avec une option de déclencher l'événement d' DataBinding . (Hérité de Control.)
Méthode protégéeDataBindChildrenLie une source de données aux contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode publiqueDisposePermet à un contrôle serveur pour effectuer la dernière nettoyer avant d'être libérée de la mémoire. (Hérité de Control.)
Méthode protégéeEndRenderTracingTermine le traçage au moment de le design des données de rendu. (Hérité de Control.)
Méthode protégéeEnsureChildControlsDétermine si le contrôle serveur contient des contrôles enfants. Dans le cas contraire, il crée des contrôles enfants. (Hérité de Control.)
Méthode protégéeEnsureIDCrée un identificateur pour les contrôles qui n'ont pas un identificateur assigné. (Hérité de Control.)
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueFindControl(String)Recherche un contrôle serveur possédant le paramètre id spécifié dans le conteneur d'attribution de noms actuel. (Substitue Control.FindControl(String).)
Méthode protégéeFindControl(String, Int32)Infrastructure. Recherche le conteneur d'attribution de noms actuel d'un contrôle serveur avec id spécifié et un entier, spécifié dans le paramètre d' pathOffset , ce qui simplifie la recherche. Vous ne devez pas substituer cette version de la méthode d' FindControl . (Hérité de Control.)
Méthode publiqueFocusDéfinit le focus d'entrée sur le contrôle. (Substitue Control.Focus().)
Méthode protégéeGetDesignModeStateInfrastructure. Obtient des données au moment de le design pour un contrôle. (Hérité de Control.)
Méthode publiqueGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode protégéeGetHierarchicalViewObtient l'objet d'assistance à l'affichage de l'interface IHierarchicalDataSource pour le chemin d'accès spécifié.
Méthode publiqueGetRouteUrl(Object)Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.)
Méthode publiqueGetRouteUrl(RouteValueDictionary)Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.)
Méthode publiqueGetRouteUrl(String, Object)Obtient l'URL qui correspond à un jeu de paramètres de routage et d'un nom d'itinéraire. (Hérité de Control.)
Méthode publiqueGetRouteUrl(String, RouteValueDictionary)Obtient l'URL qui correspond à un jeu de paramètres de routage et d'un nom d'itinéraire. (Hérité de Control.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueGetUniqueIDRelativeToRetourne la partie préfixée de la propriété d' UniqueID du contrôle spécifié. (Hérité de Control.)
Méthode publiqueHasControlsDétermine si le contrôle serveur contient des contrôles enfants. (Substitue Control.HasControls().)
Méthode protégéeHasEventsRetourne une valeur indiquant si les événements sont inscrits pour le contrôle ou des contrôles enfants. (Hérité de Control.)
Méthode protégéeIsLiteralContentInfrastructure. Détermine si le contrôle serveur contient uniquement le contenu littéral. (Hérité de Control.)
Méthode protégéeLoadControlStateRestaure les informations sur l'état du contrôle d'une demande de page précédente qui a été signalée par la méthode d' SaveControlState . (Hérité de Control.)
Méthode protégéeLoadViewStateRestaure les informations d'état d'affichage d'une demande de page précédente qui a été signalée par la méthode d' SaveViewState . (Hérité de Control.)
Méthode protégéeMapPathSecureRécupère le chemin d'accès physique auquel un chemin d'accès virtuel, absolu ou relatif, tables. (Hérité de Control.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeOnBubbleEventDétermine si l'événement du contrôle serveur est passé en haut de la hiérarchie de contrôle de l'interface utilisateur de la page. (Hérité de Control.)
Méthode protégéeOnDataBindingDéclenche l'événement d' DataBinding . (Hérité de Control.)
Méthode protégéeOnDataSourceChangedDéclenche l'événement DataSourceChanged.
Méthode protégéeOnInitDéclenche l'événement d' Init . (Hérité de Control.)
Méthode protégéeOnLoadDéclenche l'événement d' Load . (Hérité de Control.)
Méthode protégéeOnPreRenderDéclenche l'événement d' PreRender . (Hérité de Control.)
Méthode protégéeOnUnloadDéclenche l'événement d' Unload . (Hérité de Control.)
Méthode protégéeOpenFileObtient Stream utilisé pour lire un fichier. (Hérité de Control.)
Méthode protégéeRaiseBubbleEventAssigne toutes les sources d'événement et ses informations au parent du contrôle. (Hérité de Control.)
Méthode protégéeRemovedControlAppelé après un contrôle enfant est supprimé de la collection d' Controls de l'objet d' Control . (Hérité de Control.)
Méthode protégéeRenderEnvoie le contenu de contrôle serveur à un objet fourni d' HtmlTextWriter , qui écrit le contenu à afficher sur le client. (Hérité de Control.)
Méthode protégéeRenderChildrenRenvoie le contenu des enfants d'un contrôle serveur à un objet fourni d' HtmlTextWriter , qui écrit le contenu à afficher sur le client. (Hérité de Control.)
Méthode publiqueRenderControl(HtmlTextWriter)Renvoie le contenu de contrôle serveur à un objet fourni d' HtmlTextWriter et stocke les informations de traçage sur le contrôle s'il est activé. (Substitue Control.RenderControl(HtmlTextWriter).)
Méthode protégéeRenderControl(HtmlTextWriter, ControlAdapter)Renvoie le contenu de contrôle serveur à un objet fourni d' HtmlTextWriter à l'aide d'un objet fourni d' ControlAdapter . (Hérité de Control.)
Méthode protégéeResolveAdapterObtient l'adaptateur de contrôle responsable de l'affichage du contrôle spécifié. (Hérité de Control.)
Méthode publiqueResolveClientUrlObtient une URL qui peut être utilisé par le navigateur. (Hérité de Control.)
Méthode publiqueResolveUrlConvertit une URL dans un utilisable sur le client demandeur. (Hérité de Control.)
Méthode protégéeSaveControlStateEnregistre toutes les modifications d'état de contrôle serveur qui se sont produites étant donné que le temps que la page a été publiée sur le serveur. (Hérité de Control.)
Méthode protégéeSaveViewStateEnregistre toutes les modifications de l'état d'affichage de contrôle serveur qui se sont produites étant donné que le temps que la page a été publiée sur le serveur. (Hérité de Control.)
Méthode protégéeSetDesignModeStateDéfinit les données au moment de le design pour un contrôle. (Hérité de Control.)
Méthode publiqueSetRenderMethodDelegateInfrastructure. Affecte un délégué de gestionnaire d'événements pour afficher le contrôle serveur et son contenu dans son contrôle parent. (Hérité de Control.)
Méthode publiqueSetTraceData(Object, Object)Définit les données de traçage pour le suivi au moment de le design des données de rendu, à l'aide de la clé de données de trace et la valeur des données de trace. (Hérité de Control.)
Méthode publiqueSetTraceData(Object, Object, Object)Définit les données de traçage pour le suivi au moment de le design des données de rendu, à l'aide de l'objet d'un suivi, la clé de données de traçage, et la valeur des données de trace. (Hérité de Control.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode protégéeTrackViewStateProvoque le suivi des modifications d'état d'affichage au contrôle serveur afin de pouvoir être stockés dans l'objet d' StateBag du contrôle serveur. Cet objet est accessible via la propriété d' Control.ViewState . (Hérité de Control.)
Début
  NomDescription
Événement publicDataBindingSe produit lorsque le contrôle serveur se lie à une source de données. (Hérité de Control.)
Événement publicDisposedSe produit lorsqu'un contrôle serveur est récupéré de la mémoire, qui est la dernière étape du cycle de vie du contrôle serveur où une page ASP.NET. est demandée. (Hérité de Control.)
Événement publicInitSe produit lorsque le contrôle serveur est initialisé, qui est la première étape de son cycle de vie. (Hérité de Control.)
Événement publicLoadSe produit lorsque le contrôle serveur est chargé dans l'objet d' Page . (Hérité de Control.)
Événement publicPreRenderSe produit une fois que l'objet d' Control soit chargé mais avant le rendu. (Hérité de Control.)
Événement publicUnloadSe produit lorsque le contrôle serveur est déchargé de la mémoire. (Hérité de Control.)
Début
  NomDescription
Méthode d'extension publiqueFindDataSourceControlRetourne la source de données associée au contrôle de données pour le contrôle spécifié. (Défini par DynamicDataExtensions.)
Méthode d'extension publiqueFindFieldTemplateRetourne le modèle de champ pour la colonne spécifiée dans le conteneur d'attribution de noms du contrôle spécifié. (Défini par DynamicDataExtensions.)
Méthode d'extension publiqueFindMetaTableRetourne l'objet Metatable pour le contrôle de données conteneur. (Défini par DynamicDataExtensions.)
Début
  NomDescription
Implémentation d'interface explicitePropriété privéeIControlBuilderAccessor.ControlBuilderPour obtenir une description de ce membre, consultez l' IControlBuilderAccessor.ControlBuilder. (Hérité de Control.)
Implémentation d'interface expliciteMéthode privéeIControlDesignerAccessor.GetDesignModeStatePour obtenir une description de ce membre, consultez l' IControlDesignerAccessor.GetDesignModeState. (Hérité de Control.)
Implémentation d'interface expliciteMéthode privéeIControlDesignerAccessor.SetDesignModeStatePour obtenir une description de ce membre, consultez l' IControlDesignerAccessor.SetDesignModeState. (Hérité de Control.)
Implémentation d'interface expliciteMéthode privéeIControlDesignerAccessor.SetOwnerControlInfrastructure. Pour obtenir une description de ce membre, consultez l' IControlDesignerAccessor.SetOwnerControl. (Hérité de Control.)
Implémentation d'interface explicitePropriété privéeIControlDesignerAccessor.UserDataPour obtenir une description de ce membre, consultez l' IControlDesignerAccessor.UserData. (Hérité de Control.)
Implémentation d'interface explicitePropriété privéeIDataBindingsAccessor.DataBindingsPour obtenir une description de ce membre, consultez l' IDataBindingsAccessor.DataBindings. (Hérité de Control.)
Implémentation d'interface explicitePropriété privéeIDataBindingsAccessor.HasDataBindingsPour obtenir une description de ce membre, consultez l' IDataBindingsAccessor.HasDataBindings. (Hérité de Control.)
Implémentation d'interface explicitePropriété privéeIExpressionsAccessor.ExpressionsPour obtenir une description de ce membre, consultez l' IExpressionsAccessor.Expressions. (Hérité de Control.)
Implémentation d'interface explicitePropriété privéeIExpressionsAccessor.HasExpressionsPour obtenir une description de ce membre, consultez l' IExpressionsAccessor.HasExpressions. (Hérité de Control.)
Implémentation d'interface expliciteÉvénement privéIHierarchicalDataSource.DataSourceChangedInfrastructure. Se produit lorsque HierarchicalDataSourceControl a changé d'une façon qui affecte les contrôles liés aux données.
Implémentation d'interface expliciteMéthode privéeIHierarchicalDataSource.GetHierarchicalViewInfrastructure. Obtient l'objet d'assistance à l'affichage de l'interface IHierarchicalDataSource pour le chemin d'accès spécifié.
Implémentation d'interface expliciteMéthode privéeIParserAccessor.AddParsedSubObjectPour obtenir une description de ce membre, consultez l' IParserAccessor.AddParsedSubObject. (Hérité de Control.)
Début

ASP.NET prend en charge une architecture de contrôles de liaison de données qui permet à des contrôles serveur Web de se lier à des données et de les présenter de manière cohérente. Les contrôles serveur Web qui effectuent la liaison avec les données sont appelés contrôles liés aux données, et les classes qui facilitent cette liaison sont appelées contrôles de source de données. Les contrôles de source de données peuvent représenter une source de données : une base de données relationnelle, un fichier, un flux de données, un objet métier, etc. Les contrôles de source de données présentent les données de façon cohérente aux contrôles liés aux données, quels que soient la source et le format des données sous-jacentes.

Les contrôles de code source de données qui représentent des données hiérarchiques dérivent de la classe HierarchicalDataSourceControl, tandis que les contrôles de code source de données qui représentent des listes ou des tableaux de données dérivent de la classe DataSourceControl. La classe HierarchicalDataSourceControl constitue l'implémentation de base de l'interface IHierarchicalDataSource qui définit une méthode unique pour récupérer des objets de vue de sources de données hiérarchiques associés au contrôle de code source de données, GetHierarchicalView.

Considérez un contrôle de code source de données comme la combinaison de l'objet HierarchicalDataSourceControl et de ses vues associées sur les données sous-jacentes, appelées objets de vue de source de données. Alors que les contrôles de code source de données qui représentent les données tabulaires sont généralement associés à une seule vue nommée, la classe HierarchicalDataSourceControl prend en charge un affichage de source de données pour chaque niveau de données hiérarchiques que représente le contrôle de code source de données. Le niveau de données hiérarchiques est identifié par un chemin d'accès hiérarchique unique, passé à la méthode GetHierarchicalView dans le paramètre viewPath. Chaque objet HierarchicalDataSourceView définit les capacités d'un contrôle de code source de données pour le niveau hiérarchique représenté et exécute des opérations telles que l'insertion, la mise à jour, la suppression et le tri.

Les contrôles serveur Web qui dérivent de la classe HierarchicalDataBoundControl, tels que TreeView, utilisent des contrôles de code source de données hiérarchiques pour établir une liaison avec des données hiérarchiques.

Les contrôles de code source de données sont implémentés en tant que contrôles pour activer la persistance déclarative et pour éventuellement autoriser la participation à la gestion de l'état. Les contrôles de code source de données ne présentent aucun rendu visuel, et par conséquent ne prennent pas les thèmes en charge.

L'exemple de code suivant montre comment étendre la classe HierarchicalDataSourceControl abstraite et la classe HierarchicalDataSourceView, et comment implémenter les interfaces IHierarchicalEnumerable et IHierarchyData pour créer un contrôle de code source de données hiérarchique qui récupère des informations de système de fichiers. Le contrôle FileSystemDataSource permet aux contrôles serveur Web d'établir une liaison avec des objets FileSystemInfo et d'afficher des informations de système de fichiers de base. La classe FileSystemDataSource de l'exemple fournit l'implémentation de la méthode GetHierarchicalView qui récupère un objet FileSystemDataSourceView. L'objet FileSystemDataSourceView récupère les données dans le stockage spécifique sous-jacent ; dans le cas présent, des informations de système de fichiers sur le serveur Web. Pour des raisons de sécurité, les informations de système de fichiers sont affichées uniquement si le contrôle de source de données est utilisé dans un localhost, un scénario authentifié, et démarre uniquement avec le répertoire virtuel dans lequel la page Web Forms qui utilise le contrôle de source de données réside. Enfin, deux classes qui implémentent IHierarchicalEnumerable et IHierarchyData sont fournies pour encapsuler les objets FileSystemInfo que FileSystemDataSource utilise.


using System;
using System.Collections;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public class FileSystemDataSource :
    HierarchicalDataSourceControl, IHierarchicalDataSource
{
    private FileSystemDataSourceView view = null;

    public FileSystemDataSource() : base() { }

    protected override HierarchicalDataSourceView
        GetHierarchicalView(string viewPath)
    {
        view = new FileSystemDataSourceView(viewPath);
        return view;
    }
}
public class FileSystemDataSourceView : HierarchicalDataSourceView
{
    private string _viewPath;

    public FileSystemDataSourceView(string viewPath)
    {
        HttpRequest currentRequest = HttpContext.Current.Request;
        if (viewPath == "")
        {
            _viewPath = currentRequest.MapPath(currentRequest.ApplicationPath);
        }
        else
        {
            _viewPath = Path.Combine(
                currentRequest.MapPath(currentRequest.ApplicationPath),
                viewPath);
        }
    }

    // Starting with the rootNode, recursively build a list of
    // FileSystemInfo nodes, create FileSystemHierarchyData
    // objects, add them all to the FileSystemHierarchicalEnumerable,
    // and return the list.
    public override IHierarchicalEnumerable Select()
    {
        HttpRequest currentRequest = HttpContext.Current.Request;

        // SECURITY: There are many security issues that can be raised
        // SECURITY: by exposing the file system structure of a Web server
        // SECURITY: to an anonymous user in a limited trust scenario such as
        // SECURITY: a Web page served on an intranet or the Internet.
        // SECURITY: For this reason, the FileSystemDataSource only
        // SECURITY: shows data when the HttpRequest is received
        // SECURITY: from a local Web server. In addition, the data source
        // SECURITY: does not display data to anonymous users.
        if (currentRequest.IsAuthenticated &&
            (currentRequest.UserHostAddress == "127.0.0.1" ||
             currentRequest.UserHostAddress == "::1"))
        {
            DirectoryInfo rootDirectory = new DirectoryInfo(_viewPath);
            if (!rootDirectory.Exists)
            {
                return null;
            }

            FileSystemHierarchicalEnumerable fshe =
                new FileSystemHierarchicalEnumerable();

            foreach (FileSystemInfo fsi
                in rootDirectory.GetFileSystemInfos())
            {
                fshe.Add(new FileSystemHierarchyData(fsi));
            }
            return fshe;
        }
        else
        {
            throw new NotSupportedException(
                "The FileSystemDataSource only " +
                "presents data in an authenticated, localhost context.");
        }
    }
}
// A collection of FileSystemHierarchyData objects
public class FileSystemHierarchicalEnumerable :
    ArrayList, IHierarchicalEnumerable
{
    public FileSystemHierarchicalEnumerable()
        : base()
    {
    }

    public IHierarchyData GetHierarchyData(object enumeratedItem)
    {
        return enumeratedItem as IHierarchyData;
    }
}

public class FileSystemHierarchyData : IHierarchyData
{
    private FileSystemInfo fileSystemObject = null;

    public FileSystemHierarchyData(FileSystemInfo obj)
    {
        fileSystemObject = obj;
    }

    public override string ToString()
    {
        return fileSystemObject.Name;
    }
    // IHierarchyData implementation.
    public bool HasChildren
    {
        get
        {
            if (typeof(DirectoryInfo) == fileSystemObject.GetType())
            {
                DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
                return (temp.GetFileSystemInfos().Length > 0);
            }
            else return false;
        }
    }
    // DirectoryInfo returns the OriginalPath, while FileInfo returns
    // a fully qualified path.
    public string Path
    {
        get
        {
            return fileSystemObject.ToString();
        }
    }
    public object Item
    {
        get
        {
            return fileSystemObject;
        }
    }
    public string Type
    {
        get
        {
            return "FileSystemData";
        }
    }
    public IHierarchicalEnumerable GetChildren()
    {
        FileSystemHierarchicalEnumerable children =
            new FileSystemHierarchicalEnumerable();

        if (typeof(DirectoryInfo) == fileSystemObject.GetType())
        {
            DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
            foreach (FileSystemInfo fsi in temp.GetFileSystemInfos())
            {
                children.Add(new FileSystemHierarchyData(fsi));
            }
        }
        return children;
    }

    public IHierarchyData GetParent()
    {
        FileSystemHierarchicalEnumerable parentContainer =
            new FileSystemHierarchicalEnumerable();

        if (typeof(DirectoryInfo) == fileSystemObject.GetType())
        {
            DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
            return new FileSystemHierarchyData(temp.Parent);
        }
        else if (typeof(FileInfo) == fileSystemObject.GetType())
        {
            FileInfo temp = (FileInfo)fileSystemObject;
            return new FileSystemHierarchyData(temp.Directory);
        }
        // If FileSystemObj is any other kind of FileSystemInfo, ignore it.
        return null;
    }
}


L'exemple de code suivant montre comment lier de manière déclarative un contrôle TreeView aux données de système de fichiers à l'aide de l'exemple FileSystemDataSource.


<%@ Page Language="C#" %>
<%@ Register Tagprefix="aspSample" Namespace="Samples.AspNet" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:treeview
                id="TreeView1"
                runat="server"
                datasourceid="FileSystemDataSource1" />            

            <aspSample:filesystemdatasource
                id = "FileSystemDataSource1"
                runat = "server" />            

        </form>
    </body>
</html>


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.