HierarchicalDataSourceView Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
- Héritage
-
HierarchicalDataSourceView
- Dérivé
Exemples
L’exemple de code suivant montre comment dériver une classe de la HierarchicalDataSourceView classe pour récupérer des données à partir d’un stockage de données hiérarchique, dans ce cas un système de fichiers. La FileSystemDataSourceView
classe est une instance fortement typée HierarchicalDataSourceView qui permet aux contrôles serveur Web hiérarchiques tels que le TreeView contrôle de se lier à un FileSystemDataSource
contrôle et d’afficher les informations du système de fichiers. À des fins de sécurité, les informations du système de fichiers s’affichent uniquement si le contrôle de source de données est utilisé dans un scénario localhost, authentifié et commence uniquement par le répertoire virtuel dans lequel réside la page Web Forms à l’aide du contrôle de source de données. Sinon, le viewPath
paramètre passé au constructeur peut être utilisé pour créer une vue basée sur le chemin d’accès actuel du système de fichiers. Cet exemple de code fait partie d’un exemple plus grand fourni pour la HierarchicalDataSourceControl classe.
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
Remarques
ASP.NET prend en charge une architecture de liaison de données qui permet aux contrôles serveur Web de se lier aux données et de les présenter de manière cohérente. Les contrôles de serveur web qui se lient aux 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 n’importe quelle source de données : un fichier, un flux, une base de données relationnelle, un objet métier, et ainsi de suite. Les contrôles de source de données présentent des données de manière cohérente aux contrôles liés aux données, quelle que soit la source ou le format des données sous-jacentes.
Contrôles de source de données qui représentent des données hiérarchiques dérivent de la classe abstraite HierarchicalDataSourceControl . Vous pouvez considérer un contrôle de source de données comme la 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 des objets de vue de source de données. 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. Les vues de source de données ne sont pas nommées, comme les DataSourceView objets associés à un DataSourceControl contrôle, mais sont identifiées par leur chemin hiérarchique unique.
Les vues de source de données définissent les fonctionnalités 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 des données à partir de la source de données sous-jacente à l’aide de la Select méthode, qui récupère une liste hiérarchique de données en tant qu’objet IHierarchicalEnumerable . Tous les objets de vue de source de données prennent éventuellement en charge un ensemble de fonctionnalités de base, y compris les opérations telles que Insert, Update, Deleteet le tri. Un contrôle lié aux données peut découvrir les fonctionnalités d’un contrôle de source de données en récupérant une vue de source de données associée à l’aide de la GetHierarchicalView méthode et en interrogeant la vue au moment du design ou au moment de l’exécution. HierarchicalDataSourceView ne prend actuellement pas en charge Insertou Update Delete n’effectue pas d’opérations.
Notes pour les responsables de l’implémentation
Lorsque vous héritez de HierarchicalDataSourceView, vous devez remplacer le membre suivant : Select().
Constructeurs
HierarchicalDataSourceView() |
Initialise une nouvelle instance de la classe HierarchicalDataSourceView. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
Select() |
Obtient une liste de tous les éléments de données dans l'affichage. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |