Classe HierarchicalDataSourceView (System.Web.UI)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe HierarchicalDataSourceView

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

Rappresenta una vista dati in un nodo o un insieme di nodi di una struttura di dati gerarchica per un controllo HierarchicalDataSourceControl.

Spazio dei nomi: System.Web.UI
Assembly: System.Web (in system.web.dll)

Sintassi

Visual Basic - (Dichiarazione)
Public MustInherit Class HierarchicalDataSourceView
Visual Basic (Utilizzo)
Dim instance As HierarchicalDataSourceView

C#
public abstract class HierarchicalDataSourceView
C++
public ref class HierarchicalDataSourceView abstract
J#
public abstract class HierarchicalDataSourceView
JScript
public abstract class HierarchicalDataSourceView
Note

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.

Esempio

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.

Visual Basic
' 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

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

Protezione .NET Framework

  • 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.
Gerarchia di ereditarietà

System.Object
  System.Web.UI.HierarchicalDataSourceView
     System.Web.UI.WebControls.SiteMapHierarchicalDataSourceView
     System.Web.UI.WebControls.XmlHierarchicalDataSourceView
Codice thread safe

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.
Piattaforme

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.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0
Vedere anche