HierarchicalDataSourceView HierarchicalDataSourceView HierarchicalDataSourceView HierarchicalDataSourceView Class

Определение

Представляет представление данных на узле или коллекции узов в иерархической структуре данных для элемента управления HierarchicalDataSourceControl.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
Наследование
HierarchicalDataSourceViewHierarchicalDataSourceViewHierarchicalDataSourceViewHierarchicalDataSourceView
Производный

Примеры

В следующем примере кода показано, как создать класс из HierarchicalDataSourceView класса для извлечения данных из хранилища иерархических данных, в данном случае файловой системы.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. Класс является строго типизированным HierarchicalDataSourceView экземпляром, который позволяет иерархическим элементам управления веб- TreeView сервера, таким как элемент FileSystemDataSource управления, осуществлять привязку к элементу управления и отображать сведения о файловой системе. FileSystemDataSourceViewThe 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. В целях безопасности сведения о файловой системе отображаются только в том случае, если элемент управления источника данных используется в локальном узле, прошедшем проверку подлинности сценарии и начинается с виртуального каталога, в котором находится страница веб-форм, использующая элемент управления источниками данных.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. В противном viewPath случае параметр, передаваемый конструктору, может использоваться для создания представления на основе текущего пути файловой системы.Otherwise, the viewPath parameter passed to the constructor might be used to create a view based on the current file system path. Этот пример кода является частью большого примера, HierarchicalDataSourceControl приведенного для класса.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 'FileSystemDataSourceView

Комментарии

ASP.NET поддерживает архитектуру привязки данных, которая позволяет серверным веб-элементам управления выполнять привязку к данным и представлять их единообразно.ASP.NET supports a data-binding architecture that enables Web server controls to bind to data and present it in a consistent fashion. Веб-серверные элементы управления, привязанные к данным, называются элементами управления с привязкой к данным, а классы, упрощающие эту привязку, называются элементами управления источниками данных.Web server controls that bind to data are called data-bound controls, and the classes that facilitate that binding are called data source controls. Элементы управления источниками данных могут представлять любой источник данных: файл, поток, реляционную базу данных, бизнес-объект и т. д.Data source controls can represent any data source: a file, a stream, a relational database, a business object, and so on. Элементы управления источниками данных представляют данные единообразно для элементов управления, привязанных к данным, независимо от источника или формата базовых данных.Data source controls present data in a consistent way to data-bound controls, regardless of the source or format of the underlying data.

Элементы управления источниками данных, представляющие иерархические данные, HierarchicalDataSourceControl являются производными от абстрактного класса.Data source controls that represent hierarchical data derive from the abstract HierarchicalDataSourceControl class. Элемент управления источниками данных можно представить как сочетание объекта элемента управления источниками данных и связанных с ним представлений базовых данных, представленных объектами представления источников данных.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. Элементы управления иерархического источника данных поддерживают иерархическое представление источника данных для каждого иерархического уровня данных, которые они представляют.Hierarchical data source controls support a hierarchical data source view for each hierarchical level of data they represent. Представления источников данных не называются, как DataSourceView и объекты, связанные DataSourceControl с элементом управления, но идентифицируются по их уникальному иерархическому пути.The data source views are not named, like the DataSourceView objects associated with a DataSourceControl control, but are identified by their unique hierarchical path.

Представления источников данных определяют возможности элемента управления источниками данных.Data source views define the capabilities of a data source control. Все объекты представления источников данных, включая HierarchicalDataSourceView, поддерживают получение данных из базового источника данных Select с помощью метода, который извлекает иерархический IHierarchicalEnumerable список данных в виде объекта.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. Все объекты представления источников данных дополнительно поддерживают базовый набор возможностей, включая операции Insert Delete, Update, и.All data source view objects optionally support a basic set of capabilities, including operations such as Insert, Update, Delete, and sorting. Элемент управления, привязанный к данным, может обнаруживать возможности элемента управления источниками данных, получая связанное представление источника данных GetHierarchicalView с помощью метода и запрашивая представление во время разработки или во время выполнения.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в настоящее время не Insertподдерживает Update операции Delete или.HierarchicalDataSourceView does not currently support Insert, Update or Delete operations.

Примечания для тех, кто наследует этот метод

При наследовании от класса HierarchicalDataSourceView необходимо переопределить следующий член: Select().When you inherit from HierarchicalDataSourceView, you must override the following member: Select().

Конструкторы

HierarchicalDataSourceView() HierarchicalDataSourceView() HierarchicalDataSourceView() HierarchicalDataSourceView()

Инициализирует новый экземпляр класса HierarchicalDataSourceView.Initializes a new instance of the HierarchicalDataSourceView class.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Select() Select() Select() Select()

Возвращает список всех элементов данных в представлении.Gets a list of all the data items in the view.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно