Cette documentation est archivée et n’est pas conservée.

HierarchicalDataSourceView, classe

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

Représente une vue de données sur un nœud ou une collection de nœuds dans une structure de données hiérarchiques pour un contrôle HierarchicalDataSourceControl.

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

public abstract class HierarchicalDataSourceView
public abstract class HierarchicalDataSourceView
public abstract class HierarchicalDataSourceView

ASP.NET prend en charge une architecture de liaison de données qui permet aux contrôles serveur Web de lier des données de façon 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 source de données qui représentent des données hiérarchiques dérivent de la classe HierarchicalDataSourceControl abstraite. Un contrôle de source de données peut être considéré comme une association d'objets de contrôle de source de données et de ses vues associées sur les données sous-jacentes, qui sont représentées par des objets d'affichage de source de données. Les contrôles de source de données hiérarchiques prennent en charge un affichage de source de données hiérarchiques pour chaque niveau hiérarchique de données qu'ils représentent. Les affichages de source de données ne sont pas nommés, comme les objets DataSourceView associés à un contrôle DataSourceControl, mais sont identifiés par leur chemin d'accès hiérarchique unique.

Les affichages de source de données définissent les fonctions d'un contrôle de source de données. Tous les objets de vue de source de données, y compris HierarchicalDataSourceView, prennent en charge la récupération de données de la source de données sous-jacente à l'aide de la méthode Select, qui récupère une liste hiérarchique de données comme un objet IHierarchicalEnumerable. Tous les objets d'affichage de source de données prennent aussi en charge un jeu de fonctions de base, notamment Insert, Update, Delete et le tri. Un contrôle lié aux données peut découvrir les fonctions d'un contrôle de source de données en récupérant un affichage de source de données associé à l'aide de la méthode GetHierarchicalView et en interrogeant l'affichage au moment du design ou de l'exécution. HierarchicalDataSourceView ne prend pas en charge actuellement Insert, Update ni des opérations Delete.

Remarques à l'attention des héritiers Lorsque vous héritez de HierarchicalDataSourceView, vous devez remplacer le membre suivant : Select.

L'exemple de code suivant montre comment dériver une classe de la classe HierarchicalDataSourceView pour récupérer des données de stockage des données hiérarchiquess, dans ce cas un système de fichiers. La classe FileSystemDataSourceView est une instance HierarchicalDataSourceView fortement typée qui permet aux contrôles serveur Web hiérarchiques tels que le contrôle TreeView de d'établir la liaison avec un contrôle FileSystemDataSource et d'afficher des informations relatives au système de fichiers. Pour des raisons de sécurité, les informations relatives au système de fichiers sont affichées uniquement si le contrôle de source de données est utilisé dans un localhost, scénario authentifié, et commencent uniquement par le répertoire virtuel dans lequel réside la page Web Forms utilisant le contrôle de source de données. Sinon, le paramètre viewPath passé au constructeur peut être utilisé pour créer un affichage basé sur le chemin d'accès du système de fichiers en cours. Cet exemple de code fait partie d'un exemple plus développé fourni pour la classe HierarchicalDataSourceControl.

// The FileSystemDataSourceView class encapsulates the
// capabilities of the FileSystemDataSource data source control.
public class FileSystemDataSourceView : HierarchicalDataSourceView
{
private string _viewPath;

    public FileSystemDataSourceView(string viewPath)
    {
        // This implementation of HierarchicalDataSourceView does not
        // use the viewPath parameter but other implementations
        // could make use of it for retrieving values.
        _viewPath = 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"))
        {
            string rootPath = currentRequest.MapPath (currentRequest.ApplicationPath);

            DirectoryInfo rootDirectory = new DirectoryInfo(rootPath);

            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.");
        }
    }
}

  • 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

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
Afficher: