Assembly: System.Web (in system.web.dll)
Public MustInherit Class HierarchicalDataSourceView
Dim instance As HierarchicalDataSourceView
public abstract class HierarchicalDataSourceView
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
public abstract class HierarchicalDataSourceView
ASP.NET supporta un'architettura di associazione dati che consente a controlli server Web di stabilire un'associazione a dati e di presentare tali dati in modo coerente. I controlli server Web che stabiliscono un'associazione a dati vengono definiti controlli con associazione a dati e le classi che semplificano questo tipo di associazione vengono definite controlli origine dati. I controlli origine dati possono rappresentare qualsiasi origine dati: un database relazionale, un file, un flusso, un oggetto business e così via. I controlli origine dati presentano i dati in modo coerente ai controlli con associazione a dati, indipendentemente dall'origine o dal formato dei dati sottostanti.
I controlli origine dati che rappresentano dati gerarchici derivano dalla classe HierarchicalDataSourceControl astratta. Un controllo origine dati può essere considerato come una combinazione dell'oggetto controllo origine dati e delle viste associate dei dati sottostanti, che sono rappresentate da oggetti vista origine dati. I controlli origine dati gerarchici supportano una vista origine dati gerarchica per ogni livello gerarchico di dati rappresentato. Le viste origine dati non sono denominate, come gli oggetti DataSourceView associati a un controllo DataSourceControl, ma vengono identificate tramite il percorso gerarchico univoco.
Le viste origine dati definiscono le funzionalità di un controllo origine dati. Tutti gli oggetti vista origine dati, incluso HierarchicalDataSourceView, supportano il recupero dati dall'origine dati sottostante tramite il metodo Select, che recupera un elenco gerarchico di dati sotto forma di un oggetto IHierarchicalEnumerable. Tutti gli oggetti vista origine dati supportano facoltativamente un insieme di funzionalità di base, che include operazioni quali Insert, Update, Delete e l'ordinamento. Un controllo con associazione a dati può rilevare le funzionalità di un controllo origine dati recuperando una vista origine dati associata tramite il metodo GetHierarchicalView e inviando una query alla vista in fase di progettazione o in fase di esecuzione. HierarchicalDataSourceView attualmente non supporta operazioni Insert, Update o Delete.
Note sull'ereditarietà: Quando si eredita da HierarchicalDataSourceView, è necessario eseguire l'override del membro Select.Nell'esempio di codice riportato di seguito viene illustrato come derivare una classe dalla classe HierarchicalDataSourceView per recuperare dati dall'archivio dati gerarchico, in questo caso un file system. La classe FileSystemDataSourceView è un'istanza HierarchicalDataSourceView fortemente tipizzata che consente a controlli server Web gerarchici, ad esempio il controllo TreeView, di stabilire un'associazione a un controllo FileSystemDataSource e di visualizzare le informazioni del file system. Per motivi di protezione, le informazioni del file system vengono visualizzate solo se il controllo origine dati viene utilizzato in uno scenario autenticato localhost e hanno inizio solo dalla directory virtuale nella quale risiede la pagina Web Form che utilizza il controllo origine dati. In caso contrario, è possibile che venga utilizzato il parametro viewPath passato al costruttore per creare una vista in base al percorso del file system corrente. Questo esempio di codice fa parte di un esempio più esaustivo fornito per la classe HierarchicalDataSourceControl.
' The FileSystemDataSourceView class encapsulates the ' capabilities of the FileSystemDataSource data source control. Public Class FileSystemDataSourceView Inherits HierarchicalDataSourceView Private _viewPath As String Public Sub New(viewPath As String) ' This implementation of HierarchicalDataSourceView does not ' use the viewPath parameter but other implementations ' could make use of it for retrieving values. _viewPath = viewPath End Sub 'New ' 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 ' The ApplicationPath returns a physical path in VB, so do not MapPath. Dim rootPath As String = currentRequest.MapPath(currentRequest.ApplicationPath) Dim rootDirectory As New DirectoryInfo(rootPath) 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 'FileSystemDataSourceView
// 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 per operare in un ambiente host. Valore richiesta: LinkDemand. Valore autorizzazione: Minimal.
- AspNetHostingPermission per operare in un ambiente host. Valore richiesta: InheritanceDemand. Valore autorizzazione: Minimal.
System.Web.UI.HierarchicalDataSourceView
System.Web.UI.WebControls.SiteMapHierarchicalDataSourceView
System.Web.UI.WebControls.XmlHierarchicalDataSourceView
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.