HierarchicalDataSourceView Klasa

Definicja

Reprezentuje widok danych w węźle lub kolekcji węzłów w hierarchicznej strukturze danych HierarchicalDataSourceControl formantu.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
Dziedziczenie
HierarchicalDataSourceView
Pochodne

Przykłady

Poniższy przykład kodu demonstruje sposób tworzenia klasy z HierarchicalDataSourceView klasy w celu pobierania danych z hierarchicznego magazynu danych, w tym przypadku systemu plików.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. FileSystemDataSourceViewKlasa jest wystąpieniem o jednoznacznie określonym typie HierarchicalDataSourceView , które umożliwia hierarchiczne kontrolki serwera sieci Web, takie jak kontrolka, która jest TreeView powiązana z FileSystemDataSource kontrolką i wyświetla informacje o systemie plików.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. Ze względów bezpieczeństwa informacje o systemie plików są wyświetlane tylko wtedy, gdy kontrolka źródła danych jest używana w scenariuszu localhost, uwierzytelnianym i zaczyna się tylko od katalogu wirtualnego, w którym znajduje się Strona formularze sieci Web przy użyciu kontroli źródła danych.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. W przeciwnym razie viewPath parametr przesłany do konstruktora może zostać użyty do utworzenia widoku opartego na bieżącej ścieżce systemu plików.Otherwise, the viewPath parameter passed to the constructor might be used to create a view based on the current file system path. Ten przykład kodu jest częścią większego przykładu dostarczonego dla HierarchicalDataSourceControl klasy.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

Uwagi

ASP.NET obsługuje architekturę powiązania danych, która umożliwia kontrolom serwera sieci Web powiązanie z danymi i prezentowanie ich w spójny sposób.ASP.NET supports a data-binding architecture that enables Web server controls to bind to data and present it in a consistent fashion. Kontrolki serwera sieci Web, które wiążą się z danymi, są nazywane kontrolkami związanymi z danymi, a klasy, które ułatwiają to powiązanie, są nazywane kontrolkami źródła danych.Web server controls that bind to data are called data-bound controls, and the classes that facilitate that binding are called data source controls. Kontrolki źródła danych mogą reprezentować dowolne źródło danych: plik, strumień, relacyjną bazę danych, obiekt biznesowy itd.Data source controls can represent any data source: a file, a stream, a relational database, a business object, and so on. Kontrolki źródła danych przedstawiają dane w spójny sposób z kontrolkami związanymi z danymi, niezależnie od źródła lub formatu danych źródłowych.Data source controls present data in a consistent way to data-bound controls, regardless of the source or format of the underlying data.

Kontrolki źródła danych, które reprezentują dane hierarchiczne, pochodzą z klasy abstrakcyjnej HierarchicalDataSourceControl .Data source controls that represent hierarchical data derive from the abstract HierarchicalDataSourceControl class. Kontrolkę źródła danych można traktować jako kombinację obiektu kontroli źródła danych i skojarzonych z nim widoków danych źródłowych, które są reprezentowane przez obiekty widoku źródła danych.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. Hierarchiczne kontrolki źródła danych obsługują hierarchiczny widok źródła danych dla każdego poziomu hierarchicznego danych, które reprezentują.Hierarchical data source controls support a hierarchical data source view for each hierarchical level of data they represent. Widoki źródła danych nie są nazwami, takimi jak DataSourceView obiekty skojarzone z DataSourceControl kontrolką, ale są identyfikowane przez ich unikatową ścieżkę hierarchiczną.The data source views are not named, like the DataSourceView objects associated with a DataSourceControl control, but are identified by their unique hierarchical path.

Widoki źródła danych definiują możliwości kontroli źródła danych.Data source views define the capabilities of a data source control. Wszystkie obiekty widoku źródła danych, w tym HierarchicalDataSourceView , obsługują pobieranie danych z bazowego źródła danych przy użyciu Select metody, która pobiera hierarchiczną listę danych jako IHierarchicalEnumerable obiekt.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. Wszystkie obiekty widoku źródła danych opcjonalnie obsługują podstawowy zestaw możliwości, w tym operacje, takie jak Insert , Update , Delete i sortowanie.All data source view objects optionally support a basic set of capabilities, including operations such as Insert, Update, Delete, and sorting. Formant powiązany z danymi może odnaleźć możliwości kontroli źródła danych, pobierając skojarzony widok źródła danych za pomocą GetHierarchicalView metody i badając widok w czasie projektowania lub w czasie wykonywania.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. HierarchicalDataSourceView obecnie nie obsługuje Insert Update ani Delete operacji.HierarchicalDataSourceView does not currently support Insert, Update or Delete operations.

Uwagi dotyczące implementowania

W przypadku dziedziczenia z HierarchicalDataSourceView , należy zastąpić następujący element członkowski: Select() .When you inherit from HierarchicalDataSourceView, you must override the following member: Select().

Konstruktory

HierarchicalDataSourceView()

Inicjuje nowe wystąpienie klasy HierarchicalDataSourceView.Initializes a new instance of the HierarchicalDataSourceView class.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Select()

Pobiera listę wszystkich elementów danych w widoku.Gets a list of all the data items in the view.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy

Zobacz też