HierarchicalDataSourceView Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje widok danych w węźle lub kolekcji węzłów w strukturze danych hierarchicznych dla kontrolki HierarchicalDataSourceControl .
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
- Dziedziczenie
-
HierarchicalDataSourceView
- Pochodne
Przykłady
W poniższym przykładzie kodu pokazano, jak uzyskać klasę z HierarchicalDataSourceView klasy w celu pobrania danych z magazynu danych hierarchicznych, w tym przypadku systemu plików. Klasa FileSystemDataSourceView
jest silnie typicznym HierarchicalDataSourceView wystąpieniem, które umożliwia hierarchiczne kontrolki serwera sieci Web, takie jak kontrolka TreeView związana z kontrolką FileSystemDataSource
i wyświetlaniem informacji o systemie plików. W celach zabezpieczających informacje o systemie plików są wyświetlane tylko wtedy, gdy kontrola źródła danych jest używana w lokalnym hoście, uwierzytelnionych scenariuszach i rozpoczyna się tylko od katalogu wirtualnego, w którym znajduje się strona Web Forms przy użyciu kontroli źródła danych. viewPath
W przeciwnym razie parametr przekazany do konstruktora może służyć do utworzenia widoku na podstawie bieżącej ścieżki systemu plików. Ten przykład kodu jest częścią większego przykładu podanego HierarchicalDataSourceControl dla klasy.
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 kontrolkom serwera sieci Web powiązanie z danymi i prezentowanie ich w spójny sposób. Kontrolki serwera sieci Web powiązane z danymi są nazywane kontrolkami powiązanymi z danymi, a klasy, które ułatwiają powiązanie, są nazywane kontrolkami źródła danych. Kontrolki źródła danych mogą reprezentować dowolne źródło danych: plik, strumień, relacyjna baza danych, obiekt biznesowy itd. Kontrolki źródła danych przedstawiają dane w spójny sposób na powiązane z danymi kontrolki niezależnie od źródła lub formatu danych bazowych.
Kontrolki źródła danych reprezentujące dane hierarchiczne pochodzące z klasy abstrakcyjnej HierarchicalDataSourceControl . Kontrolkę źródła danych można traktować jako kombinację obiektu kontroli źródła danych i skojarzonych z nimi widoków danych na danych bazowych, które są reprezentowane przez obiekty widoku źródła danych. Hierarchiczne kontrolki źródła danych obsługują hierarchiczny widok źródła danych dla każdego reprezentowanego przez siebie poziomu hierarchicznego danych. Widoki źródła danych nie są nazwane, takie jak DataSourceView obiekty skojarzone z kontrolką, ale są identyfikowane przez ich unikatową DataSourceControl ścieżkę hierarchiczną.
Widoki źródła danych definiują możliwości kontroli źródła danych. 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. Wszystkie obiekty widoku źródła danych opcjonalnie obsługują podstawowy zestaw funkcji, w tym operacje, takie jak Insert, Update, Deletei sortowanie. Kontrolka powiązana z danymi umożliwia odnajdywanie możliwości kontroli źródła danych przez pobieranie skojarzonego widoku źródła danych przy użyciu GetHierarchicalView metody i wykonywania zapytań względem widoku w czasie projektowania lub w czasie wykonywania. HierarchicalDataSourceViewobecnie nie obsługuje InsertUpdate operacji ani Delete .
Uwagi dotyczące implementowania
Po dziedziczeniu z HierarchicalDataSourceViewprogramu należy zastąpić następujący element członkowski: Select().
Konstruktory
HierarchicalDataSourceView() |
Inicjuje nowe wystąpienie klasy HierarchicalDataSourceView. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Select() |
Pobiera listę wszystkich elementów danych w widoku. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |