HierarchicalDataSourceView クラス

定義

ノードまたはノードのコレクションのデータ ビューを、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
継承
HierarchicalDataSourceView
派生

次のコード例は、 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指定されたインスタンスで、コントロールにFileSystemDataSourceバインドTreeViewし、ファイルシステム情報を表示するコントロールなどの階層的な Web サーバーコントロールを可能にします。 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. セキュリティ上の理由から、ファイルシステム情報は、データソースコントロールが localhost の認証シナリオで使用されている場合にのみ表示され、データソースコントロールを使用する Web フォームページが存在する仮想ディレクトリから開始するだけです。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

注釈

ASP.NET では、Web サーバーコントロールがデータにバインドし、一貫性のある方法で表示できるようにするデータバインディングアーキテクチャがサポートされています。ASP.NET supports a data-binding architecture that enables Web server controls to bind to data and present it in a consistent fashion. データにバインドする Web サーバーコントロールはデータバインドコントロールと呼ばれ、そのバインドを容易にするクラスはデータソースコントロールと呼ばれます。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すべてのデータソースビューオブジェクトは、メソッドを使用して、基になるデータソースからのデータの取得をサポートしIHierarchicalEnumerableます。このメソッドはSelect 、データの階層リストをオブジェクトとして取得します。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では、、 InsertUpdateまた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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the HierarchicalDataSourceView class.

メソッド

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Select()

ビュー内のすべてのデータ項目の一覧を取得します。Gets a list of all the data items in the view.

ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください