HierarchicalDataSourceView Class

Definition

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.Represents a data view on a node or collection of nodes in a hierarchical data structure for a HierarchicalDataSourceControl control.

public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
Inheritance
HierarchicalDataSourceView
Derived

Examples

L’exemple de code suivant montre comment dériver une classe de HierarchicalDataSourceView la classe pour récupérer des données d’un stockage de données hiérarchique, dans ce cas un système de fichiers.The following code example demonstrates how to derive a class from the HierarchicalDataSourceView class to retrieve data from hierarchical data storage, in this case a file system. La FileSystemDataSourceView classe est une instance fortement HierarchicalDataSourceView typée qui permet aux contrôles serveur Web hiérarchiques tels TreeView que le contrôle d’être FileSystemDataSource liés à un contrôle et d’afficher des informations sur le système de fichiers.The FileSystemDataSourceView class is a strongly typed HierarchicalDataSourceView instance that enables hierarchical Web server controls such as the TreeView control to bind to a FileSystemDataSource control and display file system information. Pour des raisons de sécurité, les informations relatives au système de fichiers s’affichent 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 se trouve la page Web Forms qui utilise le contrôle de source de données.For security purposes, file system information is displayed only if the data source control is being used in a localhost, authenticated scenario, and only starts with the virtual directory that the Web Forms page using the data source control resides in. Sinon, le viewPath paramètre passé au constructeur peut être utilisé pour créer une vue basée sur le chemin d’accès du système de fichiers actuel.Otherwise, the viewPath parameter passed to the constructor might be used to create a view based on the current file system path. Cet exemple de code fait partie d’un exemple plus complet fourni HierarchicalDataSourceControl pour la classe.This code example is part of a larger example provided for the HierarchicalDataSourceControl class.

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.");
        }
    }
}
Public Class FileSystemDataSourceView
    Inherits HierarchicalDataSourceView

    Private _viewPath As String

    Public Sub New(ByVal viewPath As String)
        Dim currentRequest As HttpRequest = HttpContext.Current.Request
        If viewPath = "" Then
            _viewPath = currentRequest.MapPath(currentRequest.ApplicationPath)
        Else
            _viewPath = Path.Combine(currentRequest.MapPath(currentRequest.ApplicationPath), viewPath)
        End If
    End Sub


    ' 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 Overrides Function [Select]() As IHierarchicalEnumerable
        Dim currentRequest As HttpRequest = 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 AndAlso _
            (currentRequest.UserHostAddress = "127.0.0.1" OrElse _
             currentRequest.UserHostAddress = "::1") Then

            Dim rootDirectory As New DirectoryInfo(_viewPath)

            Dim fshe As New FileSystemHierarchicalEnumerable()

            Dim fsi As FileSystemInfo
            For Each fsi In rootDirectory.GetFileSystemInfos()
                fshe.Add(New FileSystemHierarchyData(fsi))
            Next fsi
            Return fshe
        Else
            Throw New NotSupportedException( _
                "The FileSystemDataSource only " + _
                "presents data in an authenticated, localhost context.")
        End If
    End Function 'Select
End Class

Remarks

ASP.NET prend en charge une architecture de liaison de données qui permet aux contrôles de serveur Web de se lier à des données et de les présenter de manière cohérente.ASP.NET supports a data-binding architecture that enables Web server controls to bind to data and present it in a consistent fashion. Les contrôles serveur Web qui sont liés aux données sont appelés des contrôles liés aux données, et les classes qui facilitent cette liaison sont appelées contrôles de source de données.Web server controls that bind to data are called data-bound controls, and the classes that facilitate that binding are called data source controls. Les contrôles de source de données peuvent représenter n’importe quelle source de données: un fichier, un flux de données, une base de données relationnelle, un objet métier, etc.Data source controls can represent any data source: a file, a stream, a relational database, a business object, and so on. Les contrôles de source de données présentent des données de manière cohérente pour les contrôles liés aux données, quelle que soit la source ou le format des données sous-jacentes.Data source controls present data in a consistent way to data-bound controls, regardless of the source or format of the underlying data.

Les contrôles de source de données qui représentent des données hiérarchiques HierarchicalDataSourceControl dérivent de la classe abstraite.Data source controls that represent hierarchical data derive from the abstract HierarchicalDataSourceControl class. Vous pouvez considérer un contrôle de source de données comme une combinaison de l’objet 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 les objets de vue de source de données.You can think of a data source control as the combination of the data source control object and its associated views on the underlying data, which are represented by data source view objects. Les contrôles de source de données hiérarchiques prennent en charge une vue de source de données hiérarchique pour chaque niveau hiérarchique de données qu’ils représentent.Hierarchical data source controls support a hierarchical data source view for each hierarchical level of data they represent. Les vues de source de données ne sont pas nommées, comme DataSourceView les DataSourceControl objets associés à un contrôle, mais sont identifiées par leur chemin d’accès hiérarchique unique.The data source views are not named, like the DataSourceView objects associated with a DataSourceControl control, but are identified by their unique hierarchical path.

Les vues de sources de données définissent les fonctionnalités d’un contrôle de source de données.Data source views define the capabilities of a data source control. Tous les objets de vue de source HierarchicalDataSourceViewde données, y compris, prennent en charge la récupération de Select données à partir de la source de données sous-jacente à l' IHierarchicalEnumerable aide de la méthode, qui récupère une liste hiérarchique de données sous la forme d’un objet.All data source view objects, including HierarchicalDataSourceView, support data retrieval from the underlying data source using the Select method, which retrieves a hierarchical list of data as an IHierarchicalEnumerable object. Tous les objets de vue de source de données prennent éventuellement en charge un ensemble de fonctionnalités de Insertbase Update, Deletenotamment des opérations telles que,, et le tri.All data source view objects optionally support a basic set of capabilities, including operations such as Insert, Update, Delete, and sorting. Un contrôle lié aux données peut découvrir les fonctionnalités d’un contrôle de source de données en extrayant une vue de source de données GetHierarchicalView associée à l’aide de la méthode et en interrogeant la vue au moment du design ou au moment de l’exécution.A data-bound control can discover the capabilities of a data source control by retrieving an associated data source view using the GetHierarchicalView method and querying the view at design time or at run time. HierarchicalDataSourceViewne prend actuellement pas Inserten Update charge Delete les opérations ou.HierarchicalDataSourceView does not currently support Insert, Update or Delete operations.

Notes to Implementers

Lorsque vous héritez de HierarchicalDataSourceView, vous devez remplacer le membre suivant : Select().When you inherit from HierarchicalDataSourceView, you must override the following member: Select().

Constructors

HierarchicalDataSourceView()

Initialise une nouvelle instance de la classe HierarchicalDataSourceView.Initializes a new instance of the HierarchicalDataSourceView class.

Methods

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
Select()

Obtient une liste de tous les éléments de données dans l'affichage.Gets a list of all the data items in the view.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

Applies to

See also