Sdílet prostřednictvím


HierarchicalDataSourceView Třída

Definice

Představuje zobrazení dat na uzlu nebo kolekci uzlů v hierarchické datové struktuře pro HierarchicalDataSourceControl ovládací prvek.

public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
Dědičnost
HierarchicalDataSourceView
Odvozené

Příklady

Následující příklad kódu ukazuje, jak odvodit třídu z třídy k načtení dat z HierarchicalDataSourceView hierarchického úložiště dat, v tomto případě systému souborů. Třída FileSystemDataSourceView je instance silného HierarchicalDataSourceView typu, která umožňuje hierarchické webové server ovládací prvky, jako TreeView je například ovládací prvek vytvořit vazbu k ovládacímu FileSystemDataSource prvku a zobrazit informace o systému souborů. Pro účely zabezpečení se informace o systému souborů zobrazí jenom v případě, že se ovládací prvek zdroje dat používá v místním hostiteli, ověřeném scénáři a začíná jenom virtuálním adresářem, ve kterém se nachází stránka Web Forms pomocí ovládacího prvku zdroje dat. viewPath V opačném případě se parametr předaný konstruktoru může použít k vytvoření zobrazení na základě aktuální cesty systému souborů. Tento příklad kódu je součástí většího příkladu zadaného HierarchicalDataSourceControl pro třídu.

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

Poznámky

ASP.NET podporuje architekturu datové vazby, která umožňuje ovládacím prvkům webového serveru svázat data a prezentovat je konzistentním způsobem. Ovládací prvky webového serveru, které sváže data, se nazývají ovládací prvky vázané na data a třídy, které usnadňují vazbu, se nazývají ovládací prvky zdroje dat. Ovládací prvky zdroje dat můžou představovat jakýkoli zdroj dat: soubor, datový proud, relační databázi, obchodní objekt atd. Ovládací prvky zdroje dat představují data konzistentním způsobem pro ovládací prvky vázané na data bez ohledu na zdroj nebo formát podkladových dat.

Ovládací prvky zdroje dat, které představují hierarchická data odvozená z abstraktní HierarchicalDataSourceControl třídy. Ovládací prvek zdroje dat si můžete představit jako kombinaci objektu správy zdrojů dat a souvisejících zobrazení podkladových dat, která jsou reprezentována objekty zobrazení zdroje dat. Hierarchické ovládací prvky zdroje dat podporují zobrazení hierarchického zdroje dat pro každou hierarchickou úroveň dat, která představují. Zobrazení zdroje dat nejsou pojmenovaná, například DataSourceView objekty přidružené k ovládacímu DataSourceControl prvku, ale jsou identifikovány jejich jedinečnou hierarchickou cestou.

Zobrazení zdrojů dat definují možnosti ovládacího prvku zdroje dat. Všechny objekty zobrazení zdroje dat, včetně HierarchicalDataSourceView, podporují načítání dat z podkladového zdroje dat pomocí Select metody, která načte hierarchický seznam dat jako IHierarchicalEnumerable objekt. Všechny objekty zobrazení zdroje dat volitelně podporují základní sadu funkcí, včetně operací, jako Insertjsou , , UpdateDeletea řazení. Ovládací prvek vázané na data může zjistit možnosti ovládacího prvku zdroje dat načtením přidruženého zobrazení zdroje dat pomocí GetHierarchicalView metody a dotazováním zobrazení v době návrhu nebo v době běhu. HierarchicalDataSourceView v současné době nepodporuje Insertani Update Delete operace.

Poznámky pro implementátory

Když dědíte z HierarchicalDataSourceView, musíte přepsat následující člen: Select().

Konstruktory

HierarchicalDataSourceView()

Inicializuje novou instanci HierarchicalDataSourceView třídy.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
Select()

Získá seznam všech datových položek v zobrazení.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také